c++標準模板庫(stl)
(1)vector–變長陣列
定義:vector name vectorname
訪問:1.像普通陣列一樣通過下標訪問 2.通過迭代器訪問,迭代器iterator可以理解為一種類似指標的東西,定義:vector::iterator it, 可以通過*it來訪問vector裡的元素。
vector常用函式:
1.push_back(x) :在vector後面新增乙個元素x
2.pop_back():用於刪除vector的尾元素
3.size():用來獲取vector中元素的個數
4.clear():用來清空vector中的所有元素
5.insert(it,x):用來向任意迭代器it處插入乙個元素x
6.erase(it):刪除迭代器為it處的元素。 erase(first,last)刪除【first,last)內的所有元素。這裡要注意:外國人的思想中一般是左閉右開。
(2)set–乙個內部自動有序且不含重複元素的集合
定義:set name
訪問:set只能通過迭代器訪問,除了vector和string外的stl容器都不支援*(it+i)的訪問方式。
insert常用函式:
1.insert(x):將x插入到set中,並自動遞增排序和去重。
2.find(value):返回set中對應值為value的迭代器。
3.erase(it),刪除迭代器為it處的元素。 erase(value)刪除值。 erase(first,last)刪除【first,last)內的所有元素。
4.size():用來獲取set中元素的個數
5.clear():用來清空set中的所有元素
(3)string–字串
string初始化可直接賦值:
string str = 「abcd」
訪問:1.可以像字元陣列那樣去訪問。如果要讀入或輸出整個字串,只能使用cin和cout。 2.通過迭代器訪問:string::iterator it。
string常用函式:
1.str1+=str2:將兩個string直接拼起來
2.直接用符號比大小,規則是字典序
3.length()/size():字串長度
4.insert(pos,string):在pos位置插入string。 insert(it,it2,it3):it為原字串欲插入位置,it2,it3為待插入字串的首尾迭代器。
5.erase(it):刪除迭代器為it處的元素。 erase(first,last)刪除【first,last)內的所有元素。
6.clear():用來清空string中的所有元素
7.substr(pos,len):返回從pos號位開始,長度為len的字串。
8.string::npos為find函式失配時返回的值
9.find(str2):當str2是str的字串時,返回在str中第一次出現的位置。如果不是,返回string::npos
10.replace(pos,len,str2):把str從pos號位開始,長度為len的字串替換為str2
(4)map–將任何基本型別對映到任何基本型別
定義:mapmp;
訪問:1.通過下標訪問 2.通過迭代器訪問:map::iterator it. 使用it->first訪問鍵,it->second來訪問值
注意:map會以鍵從小到大的順序自動排序
map常用函式:
1.find(key):返回鍵為key的對映的迭代器
2.erase(it) erase(key):key為欲刪除的對映的鍵 erase(first,last)
3.size():用來獲取map中元素的個數
4.clear():用來清空map中的所有元素
(5)queue–佇列,乙個先進先出的容器
定義:queue name
訪問:佇列是乙個先進先出的容器,所以只能通過front()來訪問隊首元素,或是通過back()來訪問隊尾元素
queue常用函式:
1.push(x):將x進行入隊
2.front(),back()
3.pop():令隊首元素出隊
4.empty():檢測是否為空,為空返回true
5.size():返回queue內的元素
(6)priority_queue–優先佇列,隊首元素一定是當前佇列中優先順序最高的元素。
(7)stack–後進先出的容器
定義:stack name
訪問:只可使用top()函式訪問棧頂
stack常用函式:
1.push(x)
2.top()
3.pop()
4.empty()
5.size()
(8)algorithm標頭檔案下的常用函式
1.max(),min(),abs()
2.swap()
3.reverse(it,it2):將陣列指標在[it,it2)之間的元素進行反轉
4.sort()
5.cmp()函式:
bool cmp(int a, int b)
6.lower_bound(first, last, val):返回第乙個值大於等於val的位置
upper_bound(first, last, val):第乙個值大於val元素的位置
C 提高程式設計(2) STL初識
stl大體分為六大元件,分別是 容器 演算法 迭代器 仿函式 介面卡 配接器 空間配置器 容器 各種資料結構,如vector list deque set map等,用來存放資料。演算法 各種常用的演算法,如sort find copy for each等 迭代器 扮演了容器與演算法之間的膠合劑。仿...
C 提高程式設計 2 STL初識
2.1 stl的誕生 長久以來,軟體界一直希望建立一種可重複利用的東西 c 的物件導向和泛型程式設計思想,目的就是提公升 的復用性。大多數情況下,資料結構和演算法都未能有一套標準,導致被迫從事大量重複的工作,為建立一套資料結構和演算法的標準,誕生了stl 2.2 stl基本概念 stl standa...
c 主項練習錯題分析 2 STL容器
下面哪幾種是 stl 容器型別 vector setmultivector multiset array 正確答案 a b d e c 11 stl中的容器 一 順序容器 vector 可變大小陣列 deque 雙端佇列 list 雙向鍊錶 forward list 單向鍊錶 array 固定大小陣...