c++ STL中的list容器用sort排序是,如何自定义比较

c++ STL中的list容器用sort排序是,如何自定义比较,第1张

template<class comp>

void sort(comp cmpfn)

前面做猜写错了,对不起了。

你改成l.sort(int node(const void *a,const void *b))

试试吧,sort函数不只是通过使用bool运算判断大小,它还纯正型有判断谁大谁小,int大于0就是a>b,反之就是a<b,等于清枯0就是a==b

我帮你改写了一下你的node()

int node(const void *a,const void *b){

return *(int *)a - *(int *)b

}

很简单

std::list<int>test

int a = 1

while (1)

{

std::cout <乱乎<"请输入数字,退出输入请按0" <哗州悉<std::endl

std::cin >>a

if(a == 0)

break

test.push_back(a)

}

std::list<int>::iterator it = test.begin()

while(it!= test.end())

{

std::cout <迹链<*it++ <<std::endl

}

你好,你的问题仅仅是很简单的没有命名空间前缀,"std::", 简单将你列出的第2行,改成“std::list<int>Backpack”就行了。

头码败文件里定义的标识符是“std::list”,而不是“list”,后者不是模板类的定义,所以不能和尖括号连用,报第一个错C2143。同时当假定list是一个变量后,发现前面没类型定义,就报告了第2个错C4430。 我的编译器vs2013不会报告你的第3个错。

在cpp文件里,你可以在所有#include之后,加入一行“using namespace std”,来避免重昌模锋复输入"std::"前缀; 如果你全cpp只用<list>,也可以只输入“using std::list”耐晌


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11982847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存