Line 14: Char 50: error: reference to non-static member function must be called sort(intervals.begin(), intervals.end(), compare_1); ^~~~~~~~~的问题所在
时间: 2024-02-10 08:30:42 浏览: 27
这个错误是因为你正在尝试将一个非静态成员函数作为参数传递给`sort`函数,但是非静态成员函数需要通过对象来调用。为了解决这个问题,你可以使用lambda表达式或者将比较函数改为静态成员函数。
使用lambda表达式的示例代码如下:
```cpp
sort(intervals.begin(), intervals.end(), [](const Interval& a, const Interval& b){
return a.start < b.start;
});
```
将比较函数改为静态成员函数的示例代码如下:
```cpp
struct Interval {
int start;
int end;
static bool compare_1(const Interval& a, const Interval& b) {
return a.start < b.start;
}
};
sort(intervals.begin(), intervals.end(), Interval::compare_1);
```
请根据你的需要选择适合的解决方案。
相关问题
sort(intervals.begin(), intervals.end());这是如何排序的
这段代码实现了对二维数组intervals按照第一维进行升序排序的功能。具体来说,sort函数会将intervals的每一个元素(也就是一个长度为2的vector)按照第一个元素(也就是区间的左端点)进行升序排序。如果第一个元素相同,则按照第二个元素(也就是区间的右端点)进行升序排序。排序完成后,intervals中的每一个区间都按照左端点的升序排列。
AttributeError: 'watcher' object has no attribute 'intervals'
这个错误是由于代码中的一个对象(在这个例子中是'watcher')没有'intervals'属性引起的。在Python中,当你尝试访问一个对象的属性时,如果该属性不存在,就会抛出AttributeError错误。根据提供的引用内容,我无法找到与'watcher'和'intervals'属性直接相关的信息。但是,通常情况下,解决此问题的方法是检查代码中的对象定义和属性访问,确保对象具有正确的属性。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [python报错: list object has no attribute shape的解决](https://download.csdn.net/download/weixin_38748721/13708867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]