1、stl的組成
1)容器(container)
容器類是容納、包含一組元素或元素集合的物件;
向量(vector)
雙端佇列(deque)
列表(list)
集合(set)、多重集合(multiset)
對映(map)和多重對映(multimap)
2)迭代器(iterator)
①提供訪問了容器中物件的方法。(也可以用其他方法訪問容器中的物件)
②迭代器就如同乙個指標。事實上,c++的指標也是一種迭代器。
3)演算法(algorithm)
① 是用來操作容器中的資料的函式模板。
例如,stl用sort()來對乙個vector中的資料進行排序,用find()來搜尋乙個list中的物件。
②函式本身與他們操作的資料的結構和型別無關,因此他們可以在從簡單陣列到高度複雜容器的任何資料結構上使用;
4)函式物件(function object)
所謂函式物件(function object)是過載了函式呼叫操作符(funiton-call operator())的物件,函式物件的優勢在於能很好的滿足stl的抽象要求
5)介面卡(adaptor)
將乙個class的介面轉換為另乙個class的介面,使得原本因介面不相容而不能合作的classes可以一起運作。
容器介面卡,迭代器介面卡,函式物件介面卡
6)空間配製器(allocator)
動態記憶體空間的分配和**工作
1、zoj2104- let the balloon rise(氣球問題)
問題描述:
比賽又開始了。看見到處都是氣球公升起,多激動啊!告訴你乙個秘密:裁判正在非常開心地猜測哪一題最受歡迎。當比賽結束時,他們統計每種顏色氣球的數量就知道結果了。
輸入輸入有多組測試例。
對每個測試例,第乙個數字是n(0<n<1000),表示氣球的數量。接下來n行,每行是乙個氣球的顏色,由小寫字母構成的字串表示,長度不超過15個。當n=0時,表示輸入結束。
輸出對每個測試例輸出一行,是表示最受歡迎的題目的氣球顏色。
問題分析
本題要求輸出顏色數最多的氣球顏色,題目保證只有一種顏色數最多(答案是唯一的)。
本題比較適合用標準模板庫(stl)的容器map(),key為顏色,當同一種顏色重複出現時,讓value計數,然後將value值最大的那個key輸出即可。
**
#include #include #include #include using namespace std;
int main()
map::iterator point,loc;
for(point=balloon.begin();point!=balloon.end();point++)
if(imaxsecond)
cout
問題描述:
本題要求建立和遍歷二叉樹。
編寫程式:給出一組二叉樹,實現按層遍歷每棵樹。本題中二叉樹的每個結點都是乙個正整數,並且所有的二叉樹都不超過256個結點。
按層遍歷一棵樹時,同一層上所有結點的資料從左到右輸出,第k層的結點應該在第k+1層的結點之前輸出。
輸入樣例
(11,ll) (7,lll) (8,r)
(5,) (4,l) (13,rl) (2,llr) (1,rrr) (4,rr)
輸出樣例
5 4 8 11 13 4 7 2 1
問題分析
路徑長度決定了結點所在的層次
(5,)
(4,l) (8,r)
(11,ll) (13,rl) (4,rr)
(7,lll) (2,llr) (1,rrr)
可以定義乙個優先佇列,解決該問題
演算法分析筆記第二章STL簡介
stl簡介筆記 stl standard template library 即標準模板庫,是乙個具有工業強度的,高效的c 程式庫。stl是所有c 編譯器和所有作業系統平台都支援的一種庫。1。stl的組成 1 容器 container 2 迭代器 iterator 3 演算法 algorithm 4 ...
第二章 STL簡介
容器共同操作操作 insert pos,e 將元素e的拷貝安插於迭代器pos所指的位置 erase beg,end 移除 beg,end 區間內的所有元素 clear 移除所有元素 c.size 返回元素個數 c.empty 判斷容器是否為空 c.max size 返回元素最大可能數量 固定值 c....
第二章 STL簡介
1 容器 container 2 迭代器 iterator 3 演算法 algorithm 4 函式物件 function object 5 介面卡 adaptor 6 空間配製器 allocator 構造 拷貝和析構 非變動操作 基本原理 將插入的值 第乙個運算元 與樹根 第二個運算元 紅黑樹,二...