順序容器型別
功能標頭檔案
vector
可變長度的陣列,也叫向量
< vector >
deque
雙端佇列,也就是可以兩頭插入和刪除的佇列。實際上也支援隨機訪問
< deque >
list
乙個雙向鍊錶
< list >
forward_list
乙個單項鍊表
< forward_list >
array
固定大小的陣列,和c語言當中的陣列差不多
< array >
string
常用的字串
< string >
上面的除了array是固定大小不變的以外,剩下的容器都是可變長度,靈活增加和減少的。不同容易在不同的操作上面效率各有優劣,在記憶體當中的儲存和管理方式也各有不同。其中array和froward_list是c++標準新增加的型別。
內容比較多,截個圖吧
經常用於用來遍歷和操作容器,迭代器的遍歷範圍是乙個左閉右開的區間,比如有乙個
vector
v=auto beg=v.begin(),ed=v.end();
cout
<
cout
<
現在又一對迭代器beg和ed分別指向同乙個元素的begin()和end()那麼
#include
using
namespace
std;
int main()
; auto ed=v.end();
for(auto beg=v.begin();beg!=ed;beg++)
cout
<
0;}
如果想從後往前遍歷和操作容器,可以使用反向迭代器。
#include
using
namespace
std;
int main()
; //rit的型別是vector::reverse_iterator
for(auto rit=v.rbegin();rit!=v.rend();rit++)
cout
<
cout
0;}
如果只想遍歷,不想對容器中的元素進行操作。可以是用const_iterator,那麼反向的const迭代器就是
const_reverse_iterator
#include
using
namespace
std;
int main()
; for(auto cit=v.cbegin();cit!=v.cend();cit++)
cout
<
cout
cout
<
cout
0;}
書上說在c++11當中,begin和end成員有兩種,一種const,另外一種是非const。根據呼叫的物件型別來返回是否為const
#include
using
namespace
std;
int main()
; vector
::const_iterator cit=v.begin();//雖然是begin,但是實際上是cbegin
for(cit=v.begin();cit!=v.end();cit++)
++(*cit);
return
0;}
to be continue~ 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 單向列表。只支援單...
C 順序容器
一 各個順序容器效能差異主要體現在一下兩個方面 1.在容器中任意位置新增和刪除元素的代價 2.隨機訪問容器中元素的代價 vector list deque forward list array string vector是可變大小陣列,支援快速隨機訪問,在尾部插入和刪除元素較為方便 list是雙向鍊...