C 順序容器的操作

2021-08-17 09:15:19 字數 1672 閱讀 4652

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 單向列表。只支援單...