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...