kla*_*add 2 c++ stl stl-algorithm
我觉得好像我正确使用它,但编译器感觉不然.我正在尝试使用stl排序算法在sort_by_name函数中按字母顺序对课程列表进行排序.这大致是我写的:
class SomeClass {
private:
struct course {
string id, name;
};
vector<course> COURSES;
bool nameCmp(course a, course b) {return (a.name > b.name) ? true : false;}
public:
void sort_by_name() {
sort(COURSES.begin(), COURSES.end(), nameCmp);
}
};
Run Code Online (Sandbox Code Playgroud)
错误:
error: no matching function for call to ‘sort(std::vector<SomeClass::course>::iterator, std::vector<SomeClass::course>::iterator, <unresolved overloaded function type>)’
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
将功能更改为:
static bool nameCmp(course a, course b) { return a.name > b.name; }
Run Code Online (Sandbox Code Playgroud)
更好的方法是通过const-reference course const & a等传递参数.
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |