一 STL概論與版本簡介

2021-09-02 18:41:55 字數 1045 閱讀 9048

stl提供六大元件:

容器containers:

演算法algorithms:

迭代器iterators:

仿函式functors:

配接器adapters:

配置器allocators:

只在函式內部使用的函式可以用_advance()表示,前面加_符號,特定的前導符

list不能使用stl演算法sort(),必須使用自己的sort() member function,因為stl演算法sort()只接受randomaccessiterator

對deque進行的排序操作,為了最高效率,可將deque先完整複製到乙個vector身上,將vector排序後(利用stl sort演算法),再複製回deque

面對關聯式容器(set等),應該使用其所提供的find函式來搜尋元素,回比使用stl演算法find()更有效率,因為stl演算法find()只是循序搜尋

企圖通過迭代器來改變set元素時不被允許的(read-only)

對於map,不能修改鍵值,會破壞map組織,但可以修改元素的實值

map以rb-tree為底層機制,幾乎所有的map操作行為,都只是轉呼叫rb-tree的操作行為

map會根據鍵值按某種順序排序

遍歷:(自動按鍵值排序)

map::iterator simap_iter = simap.begin();

for (; simap_iter != simap.end(); ++simap_iter)

cout << simap_iter->first << " " << simap_iter->second << endl;

multiset允許值重複,multimap允許鍵值重複

int ia = ;

vectoriv(ia, ia + sizeof(ia) / sizeof(int));

一 STL概論與版本簡介

stl 原始碼剖析 苞丁解牛,恢恢乎游刃有餘 第一章 stl概論與版本簡介 1.9.2 臨時物件的產生與應用 1 刻意產生臨時物件 在型別名稱後直接加一對小括號,並指定初值,如 shape 3,5 或 int 8 呼叫相應的constructor且不指定物件的名稱。及建立匿名臨時物件。在stl中此技...

1 STL概論與版本簡介

c 標準規範下的c標頭檔案 無副檔名 如cstdio,cstdlib等 c 標準程式庫中不屬於stl範疇者,如stream,string stl標準標頭檔案 無副檔名 如vector,deque,list等 c 標準定案前,hp標準規範的stl標頭檔案,如vector.h,deque.h等 sgi ...

STL原始碼剖析 第一章 概論與版本介紹

stl六大元件 容器 containers 各種資料結構,如vector,list,deque,set,map,用來存放資料。從實現角度來看stl容器是一種class template。演算法 algorithms 各種常用的演算法如sort,search,copy,erase 從實現角度來看stl...