c++中list.sort()不能指定自己的排序规则
class MY
{
public:
bool operator() (int _X, int _Y) const
{
return _X > _Y;
}
};
void main( )
{
using namespace std;
list<int> v1;
list<int>::iterator Iter1;
for (int i = 0 ; i <= 5 ; i++ )
{
v1.push_back(i) ;
}
//v1.sort(greater<int>( )); //这个可以
v1.sort(MY( )); //自己指定的不可以
// sort(v1.begin( ), v1.end( ), MY()); //若把list换成vector,然后运行这句又可以了
}
错误提示:F:\My Documents\Test\main.cpp(39) : error C2664: 'void __thiscall std::list<int,class std::allocator<int> >::sort(struct std::greater<int>)' : cannot convert parameter 1 from 'class MY' to 'struct std::greater<int>'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.
list.sort()到底能不能指定自己的排序规则?求高手指点啊
{
public:
bool operator() (int _X, int _Y) const
{
return _X > _Y;
}
};
void main( )
{
using namespace std;
list<int> v1;
list<int>::iterator Iter1;
for (int i = 0 ; i <= 5 ; i++ )
{
v1.push_back(i) ;
}
//v1.sort(greater<int>( )); //这个可以
v1.sort(MY( )); //自己指定的不可以
// sort(v1.begin( ), v1.end( ), MY()); //若把list换成vector,然后运行这句又可以了
}
错误提示:F:\My Documents\Test\main.cpp(39) : error C2664: 'void __thiscall std::list<int,class std::allocator<int> >::sort(struct std::greater<int>)' : cannot convert parameter 1 from 'class MY' to 'struct std::greater<int>'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.
list.sort()到底能不能指定自己的排序规则?求高手指点啊
...全文
相关推荐
详细解说STL排序
1.2 自定义比较函数默认情况下,sort 使用 less<int>() 进行升序排序。若需要自定义排序规则,可以提供自己的比较函数或仿函数。
c++STL常用容器之List容器——排序案例(十七)***排序函数Sort()用法***函数的定义解析***
这里有C++STL——全面总结详细教程(附案例解析)(持续更新中) 目录 排序案例 简言之: 升序用“<”小于号 降序用“>”大于号 排序案例 案例描述:将Person自定义数据类型进行排序,Person中属性有姓名、年龄、身高 排序规则:按照年龄进行升序,如果年龄相同按照身高进行降序 #include<iostream> #include&...
C++中list用法
- `pop_back()`:删除list的最后一个元素。 - `pop_front()`:删除list的第一个元素。 - `insert()`:在list的指定位置插入一个元素。
C++中使用sort对常见容器排序.docx
使用 sort 对 list 排序`list` 是双向链表,同样可以使用 `sort()` 进行排序。
C++中list的使用方法及常用list操作总结
C++中的`list`是STL(标准模板库)中的一种容器,它是一个双链表,提供了高效的数据插入和删除能力,但不支持随机访问。在使用`list`时,需要包含`<list>`头文件。1. **List


