/**
* Accelerated C++ 筆記
**/
list容器相當于數據結構中的鏈表,vector容器相當于順序表。
vector是為快速隨機訪問而被優化的,同樣地,優化了的list類型,可以讓我們在容器的任何位置快速的插入和刪除元素。
在vector內部插入或刪除元素,為了保持快速隨機存取的特性,必須移動位于被插入或刪除的元素后面的所有
元素。移動元素意味著,時間復雜度為向量元素個數的二次方。
//用list代替vector:主要是因為插入和刪除操作太多
list<Student_info> extract_fails(list<Student_info>& students)
{
list<Student_info> fail;
list<Student_info>::iterator iter = students.begin();
while(iter != students.end()){
if(fgrade(*iter)){
fail.push_back(*iter);
iter = students.erase(iter);
}
else
++iter;
}
return fail;
}
list容器的迭代器不支持完全隨機訪問,所以我們就不能用標準庫中sort函數對它進行排序。
對此,list提供了自己的sort成員函數,這個函數使用了 一個優化的算法來為存儲在list中的數值排序。
list<Student_info> students
students.sort(compare);//compare函數可以自己定義
posted on 2008-10-04 15:03
xuejzt 閱讀(1339)
評論(0) 編輯 收藏 引用 所屬分類:
C++