第九章 順序容器 方便查詢

順序容器概述

關於容器關係運算符的使用

關係運算符左右兩邊的運算對象必須是相同類型的容器,且必須保存相同類型的元素。

兩個vector的capacity不會影響相等性的判定

vector<int> ivec = {1,2,3,4,5,6,7};
vector<int> ivec1 = {1,2,3,4,5,6,7};
//ivec1添加、刪除元素導致擴容,但是二者仍然相等
ivec1.push_back(8);     //末尾加入一個元素8
ivec1.pop_back();       //在ivec1的末尾刪除一個元素

向順序容器中添加元素的操作

emplace操作:當調用push和insert成員函數時,我們將元素類型的對象傳遞給它們,這些對象被拷貝到容器中。而當我們調用一個emplace成員函數時,則是將參數傳遞給元素類型的構造函數。emplace函數在容器中直接構造元素。傳遞給emplace函數的參數必須與元素類型的構造函數匹配。

訪問元素

刪除元素

特殊的forward_list操作

改變容器大小

管理容量的成員函數

一個vector的capacity和size有何區別

capacity返回已經爲vector分配了多大內存空間(單位是元素大小),也就是在不分配新空間的情況下,容器可以保存多少個新元素。而size則返回容器當前已經保存了多少個元素。

額外的string操作

假設希望每次讀取一個字符存入一個string中,而且知道最少讀取100個字符,如何提高程序性能?

關鍵:使用reserve先爲string分配100個字符的空間。

修改string的操作

string搜索操作

compare函數

數值轉換

容器適配器支持的操作和類型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章