cwlr.net
当前位置:首页 >> C++中list 为什么不能使用stD:sort >>

C++中list 为什么不能使用stD:sort

std::sort要求容器的迭代器是随机迭代器,而list和set这样的用的结点实现的容器不能生成随机迭代器,所以不能用std::sort

#include #include #include using namespace std; typedef struct Node { public : Node(double a, double b):cof(a),deg(b){}; double cof; // 系数 double deg; // 指数 //重载比较运算符 bool operator >(const Node A) { if (cof == A.cof)...

template void sort(comp cmpfn) 前面写错了,对不起了。 你改成l.sort(int node(const void *a,const void *b)); 试试吧,sort函数不只是通过使用bool运算判断大小,它还有判断谁大谁小,int大于0就是a>b,反之就是a

把你的代码贴上来埃可能是没有按照你要求的顺序排序吧,这样的话,得自己定义一下仿函数

1楼的说法是正确的。 不过,有更方便、更高效的实现方法。 #include #include #include using namespace std; struct Test { string Name; int order; }; bool comp(const Test &lhs, const Test &rhs) { return lhs.order < rhs.order; } int m...

void sort( iterator start, iterator end ); void sort( iterator start, iterator end, StrictWeakOrdering cmp ); 第一个只需要传递你要排序的串(整形数组等都行)的头指针(数组第一个元素的指针)与数组最后元素的下一个位置 第二个前面两...

minArea 没有返回值。 sort的用法是对的,只不过C++不支持动态数组。p改一下。

没有报错啊,能正常运行。用Dev就可以正常运行。

list::sort有两种形式,一种是不带参数的,一种是可以传入一个比较函数或仿函数的。 如果链表中保存的元素支持比较运算(比如是int、double这种基本类型,或者是对象但对象定义了operator

输出结果将是把数组a按升序排序,调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare). 1)自己编写compare函数: bool compare(int a,int b) { return ab...

网站首页 | 网站地图
All rights reserved Powered by www.cwlr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com