C 順序容器簡介

2021-07-16 07:06:34 字數 2068 閱讀 3221

順序容器型別

功能標頭檔案

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是雙向鍊...