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

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

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

sort(buffer,buffer+n,cmp); buffer为待排序数组的首地址,buffer+n为待排序数组的最后一个数据的地址。cmp为自定义的排序规则函数,可省略。 sort()函数默认是为升序排列,允许排序类型包括数值/字符/字符串。sort()也可以对结构体进行排序。

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

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

一般用的都是快速排序,最好、正常和平均时间复杂度都为O(nlog2n),2为底的对数,最坏情况就是数据已经或者近乎有序,当然就是O(n^2)了

输出结果将是把数组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