读书人

用标准库中的排序算法给list排序不行吗

发布时间: 2012-09-06 10:37:01 作者: rapoo

用标准库中的排序算法给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算法

读书人网 >C++

热点推荐