首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用标准库中的排序算法给list排序不行吗?该如何处理

2012-09-06 
用标准库中的排序算法给list排序不行吗?#includelist#includealgorithm#includestdlib.h#includeio

用标准库中的排序算法给list排序不行吗?
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iostream>

using namespace std;

int main()
{
list<int> l2;
for(int j=0;j<20;j++)
l2.push_front(j);
sort(l2.begin(),l2.end());
system("pause");
return 0;
}
上面一段简短的代码为啥编译不通过啊?


[解决办法]

探讨

这与容器的内存分配有关
sort算法为了满足通用性需要RandomAccess,因为是用深拷贝方法来移动元素的,而list本身的性质决定了它只需要改变pnext的指向就可以灵活改变顺序,不需要深拷贝。因此从效率的角度出发list被禁止使用sort算法

热点排行