順序容器類型:
tip:通常使用vector是最好的選擇。

容器操作:


容器定義和初始化:

當將一個容器初始化為另一個容器的拷貝時,兩個容器的容器類型和元素類型都必須相同。當傳遞迭代器參數來拷貝一個范圍,就不要求容器類型是相同的,

容器賦值運算:

向順序容器添加元素:

使用emplace操作:
當我們調用push或insert成員函數時,我們將元素類型的對象傳遞給它們,這些對象被拷貝到容器中。而當我們調用一個emplace成員函數時,是將參數傳遞給元素類型的構造函數。emplace成員使用這些參數在容器管理的內存空間中直接構造元素。

Note: emplace 函數在容器中直接構造元素。傳遞給emplace函數的參數必須與元素類型的構造函數相匹配。
在順序容器中訪問元素的操作:
Note:在容器訪問元素的成員函數返回都是引用。如果容器是一個const對象,則返回值是const的引用。如果容器不是const,則返回值是普通引用。

刪除元素:
刪除元素的成員函數并不檢查其參數。在刪除元素之前,程序員必須確保它們是存在的。

特殊的forward_list操作:


改變容器的大小:

Note: 由于向迭代器添加元素和從迭代器刪除元素的代碼可能會使迭代器失效,因此必須保證每次改變容器的操作之后都正確地重新定位迭代器。對于vector,string,deque尤其注意。

如果在一個循環中插入/刪除deque,string或vector中的元素,不要緩存end返回的迭代器。
管理容量的成員函數:

額外的string操作:


修改string的操作:

string搜索操作:
每個搜索操作都返回一個string::size_type值,表示匹配發生位置的下標。如果搜索失敗,則返回一個名為string::npos的static成員。其為const string::size_type類型,初始值為-1。由于npos是一個unsigned類型,此初始值意味著npos等于任何string最大的可能大小。


compare函數:

數值轉換:

容器適配器:
所有容器適配器都支持的操作和類型:

棧適配器:

隊列適配器:


新聞熱點
疑難解答