1)新增元素
2)刪除元素
3)設定容器大小
4)獲取容器元素
size_tpye,無符號整型,容器長度
iterator,容器迭代器
const_iterator,唯讀容器迭代器
reverse_iterator,逆序迭代器
const_reverse_iterator唯讀逆序迭代器
difference_tpye,兩個迭代器差值,有符號整數,可為負數
value_tpye元素型別
reference,元素的引用
const_reference 元素的常量引用
void test()
3.begin和end成員
c.begin()指向第乙個元素的迭代器
c.end()指向最後乙個元素的迭代器
c.rbegin()逆序迭代器,指向容器的最後乙個元素
c.rend()逆序迭代器,指向容器第乙個元素的前面
void test2()
c.push_back(e)在容器末尾新增乙個元素
c.push_front(e)在容器前端新增乙個元素(只有list和deque可以,vector不可以)
c.insert(p,e)在指定位置插入
c.insert(p,n,e)在指定位置新增n個元素
c.insert(p,b,e)在指定位置插入b迭代器開始e結束個元素
注意:新增或刪除元素,會使迭代器失效
4.vector的內容分配策略
vector中的元素的連續儲存的,以便通過索引的方法快速訪問
但是如果分配的內容空間使用完後,必須重新分配記憶體空間,並且要移動所有元素,這樣他的效能就會降低,但事實上,vector分配的記憶體空間會比他的實際使用空間大,這樣就可以提高效能。
例如:
void test4()
1.vector和deque可以對元素進行快速的隨機訪問,但是插入和刪除效率較低,因為需要移動其他元素
2.list在插入和刪除上比較快,但是隨機訪問比較慢,因為它的元素不連續。
3.容器的選擇
1)如果程式要求隨機訪問元素,應該使用vector和deque容器
2)如果程式必須要在中間插入或者刪除,則使用list
3)如果不是在中間位置,而是在首位置插入或者刪除元素,則用deque(雙向佇列)
6.容器的介面卡
1.介面卡是一種設計模式,即在原有介面新增新的介面,使其適合另外一種操作。
2.順序容器有三種介面卡
stack後進先出(lifo)棧
queue先進先出(fifo)
priority_queue 優先順序佇列
3.介面卡的型別和宣告
size_type 大小
value_type 元素型別
container 容器型別
注意:stack queue是基於deque實現,所以不能使用vector和list構造,而priority_queue在vector容器上實現
順序容器的操作1
include include include include using namespace std int main vector size type a1 liat和deque也有相同迭代器,下面列舉的也都是的,vector iterator a2 list是鍊錶,沒有下標,只能用迭代器,ve...
C 順序容器
一 順序容器型別 順序容器 vector list deque 介面卡 stack queue priority queue 使用這些容器都必須使用相應的標頭檔案 二 容器元素初始化 cc 建立乙個名為c的空容器 cc c2 建立容器c2的副本 cc b,e 建立c,其元素是迭代器b和e的範圍內的副...
C 順序容器
1 概述 乙個容器就是一些特定型別物件的集合。順序容器型別 描述vector 可變大小陣列,支援快速訪問,在尾部之外的地方插入或刪除時可能很慢 deque 雙端佇列。支援快速訪問,在頭尾插入刪除會很快。list 雙向列表。只支援雙向順序訪問。插入刪除很快 forward list 單向列表。只支援單...