返回信息流☆─────────────────────────────────────☆
sadw (我没想好 ) 于 (Fri Mar 26 09:43:43 2010) 提到:
一个简单的排序,为什么在比较函数中返回true,就会挂,错误提示 invalid operator <,返回false就没事
代码如下
struct File_info
{
File_info( int ii = 0 ): i(ii)
{
is_dir = !(bool)(ii % 2);
}
int i;
bool is_dir;
};
struct FileListCompare
{
bool operator()( File_info const& file1, File_info const& file2 )
{
return true; // return false就没有问题
}
};
void main()
{
int i = 100;
vector<File_info> f_list;
while ( i-- )
f_list.push_back( i );
sort( f_list.begin(), f_list.end(), FileListCompare() );
for ( vector<File_info>::iterator it = f_list.begin(); it != f_list.end(); it++ )
printf( "%d ,", it->i );
}
☆─────────────────────────────────────☆
jokerlee (Jackal The Dire) 于 (Fri Mar 26 10:22:04 2010) 提到:
a = b = 3
a < b false
b < a false
不存在 a,b
a < b true
b < a true
☆─────────────────────────────────────☆
sadw (我没想好 ) 于 (Fri Mar 26 11:14:25 2010) 提到:
哦 明白了 ,谢谢
☆─────────────────────────────────────☆
josephbupt (爱乐年华) 于 (Sat Mar 27 01:18:04 2010) 提到:
需要重载小于号,其实就是需要自己定义一个比较方法。
【 在 sadw 的大作中提到: 】
: 一个简单的排序,为什么在比较函数中返回true,就会挂,错误提示 invalid operator <,返回false就没事
: 代码如下
: struct File_info
: ...................
这是一条镜像帖。来源:北邮人论坛 / cpp / #37193同步于 2010/3/28
CPP机器人发帖
[合集] stl sort问题请教
jokerlee
2010/3/28镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。