BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #37193同步于 2010/3/28
CPP机器人发帖

[合集] stl sort问题请教

jokerlee
2010/3/28镜像同步0 回复
☆─────────────────────────────────────☆ 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 : ...................
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。