C 標準庫 list使用注意事項

2021-06-27 07:57:49 字數 1305 閱讀 5970

list使用需要注意的幾點:

1.list不支援隨機訪問,即如果你要訪問第5個元素,你必須順著串鏈一一爬過前4個元素,所以在list中隨機遍歷任意元素,是很緩慢的行為;

2.任何位置(不只是兩端)執行元素的安插和刪除都非常快,始終是常數時間內完成,因為無需移動任何其他元素,實際上內部只是進行了一些指標操作而已;

3.安插和刪除動作並不會造成指向其他元素的各個pointers,references,iterators失效;

4.list對於異常有著:要麼操作成功,要麼什麼都不發生。

5.list提供了不少特殊的成員函式,專門用於移動元素,較通用的stl演算法,這些函式執行起來速度更快,因為無須拷貝和移動,只需調整若干指標即可;

6.list內部提供了很多高效快速的成員函式,用來移動list內部元素或者不同list之間的元素;

**示例:

//list簡單示例

#include#include#include#includeusing namespace std;

void printlists(const list&l1,const list& l2)

printlists(list1,list2);

list2.splice(find(list2.begin(),list2.end(),3),list1);//將list1中的元素轉移到list2的『3』元素之前

printlists(list1,list2);

list2.splice(list2.end(),list2,list2.begin());//將list2內的list2.begin()的元素轉移到list2內的list2.end()所指的位置

printlists(list1,list2);

list2.sort();//按照 < 排序

list1=list2;

list2.unique();//如果存在若干相鄰元素值相等,就移除重複元素

printlists(list1,list2);

list2.push_back(7);

printlists(list1,list2);

list1.merge(list2);//首先lsit1和list2必須已序,並且大小順序相同,將lsit2的全部元素轉移到list1,保證合併後仍然已序

printlists(list1,list2);

system("pause");

return 0;

}

執行結果:

C 標準庫 deque使用注意事項

deque需要注意的幾點 1.兩端都能快速安插元素和移除元素,這些操作可以在常數時間內完成 2.deque內部結構會多乙個間接過程,訪問元素動作會稍微慢一點 3.迭代器需要在不同區塊間跳轉,所以必須使用特殊的智慧型指標,非一般指標 4.duque不支援對容量和記憶體重分配時機的控制,除了頭尾兩端,在...

C標準庫函式strtok使用注意事項

大家都知道strtok函式可以用來對字串進行分割,大大滿足了我們處理字串時候的需求,不需要我們自己再去寫一些分割函式。首先這個函式的原型為 char strtok char s,const char delim strtok 用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割...

Eigen庫使用注意事項

1.eigen使用只要vs2013的專案屬性中包含目錄有eigen資料夾即可,使用時標頭檔案使用 include eigen dense 使用 include 是有問題的,因為 表示vs2013內建庫檔案的位置 2.eigen的列向量只能與列向量操作,行相量與行相量操作。即使是使用array 後是對...