list容器排序問題?

#include <iostream>
#include <vector>
#include <list>
#include <algorithm>

using namespace std;

int main(){
  int array[] = { 1,2,3,4,2,5,6,3,7,5,8,9};
  list<int> ilst(array,array + sizeof(array) / sizeof(int));
  vector<int> ivec;
  sort(ilst.begin(),ilst.end());
  ilst.erase(unique( ilst.begin(),ilst.end()),ilst.end());
  for(list<int>::iterator it = ilst.begin(); it != ilst.end(); ++it){
  cout << *it << " " << flush;
  }
  cout << endl;
  system("pause");
  return 0;
}


爲什麼我調用sort時編譯通不過,而把list換成vector容器就能編譯通過?這是什麼原因????




list有自己的排序算法。

ilst.sort試試

list容器的sort成員函數是針對 list容器的元素排序的(與STL中的sort算法函數不同,sort算法只對隨機迭代器有效,不能用於鏈表容器的元素排序)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章