stl的版本很多,常見的有hp stl、pj stl、 sgi stl等。stl可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、演算法(algorithms)、仿函式(functors)六個部分。
在實際的開發過程中,資料結構本身的重要性不會遜於操作於資料結構的演算法的重要性,當程式中存在著對時間要求很高的部分時,資料結構的選擇就顯得更加重要。
經典的資料結構數量有限,但是我們常常重複著一些為了實現向量、鍊錶等結構而編寫的**,這些**都十分相似,只是為了適應不同資料的變化而在細節上有所出入。stl容器就為我們提供了這樣的方便,它允許我們重複利用已有的實現構造自己的特定型別下的資料結構,通過設定一些模板類,stl容器對最常用的資料結構提供了支援,這些模板的引數允許我們指定容器中元素的資料型別,可以將我們許多重複而乏味的工作簡化。
容器部分主要由標頭檔案,,,,,和組成。對於常用的一些容器和容器介面卡(可以看作由其它容器實現的容器),可以通過下表總結一下它們和相應標頭檔案的對應關係。
序列式容器
向量(vector) 連續儲存的元素
列表(list) 由節點組成的雙向鍊錶,每個結點包含著乙個元素
雙端佇列(deque) 連續儲存的指向不同元素的指標所組成的陣列
介面卡容器
棧(stack) 後進先出(lifo)的值的排列
佇列(queue) 先進先出(fifo)的值的排列
優先佇列(priority_queue) 元素的次序是由作用於所儲存的值對上的某種謂詞決定的的一種佇列
關聯式容器
集合(set) 由節點組成的紅黑樹,每個節點都包含著乙個元素,節點之間以某種作用於元素隊的謂詞排列,沒有兩個不同的元素能夠擁有相同的次序
多重集合(multiset) 允許存在兩個次序相等的元素的集合
對映(map) 由對組成的集合,以某種作用於鍵對上的謂詞排列
多重對映(multimap) 允許鍵對有相等的次序的對映
對(pair) 和map類似,但只有一對鍵值
智慧型指標(auto_ptr) 將乙個用new開闢記憶體的指標賦給auto_ptr,會自動**空間
C 面試題之i 面試題
i 面試題1.cpp 中國台灣某著名防毒軟體公司2005年10月面試題 int i 3,j 4 i?i j printf d d n i,j a.3 3 b.4 4 c.3 4 d.4 3 答案b i 面試題2.cpp 中國某著名計算機金融軟公司2005年面試題 int x 1,j 2 int k ...
C 面試題之sizeof面試題
sizeof面試題1.cpp what is the output of the following code?美國某著名計算機軟硬體公司面試題 include include include using namespace std structa structb int main 解析 ss1是乙...
C語言面試題之華為面試題
1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...