C 系列 順序容器 7

2021-10-04 22:53:32 字數 2939 閱讀 1826

容器名稱

性質vector

可變大小陣列,支援快速隨機訪問,在尾部之外插入或刪除元素可能很慢

deque

雙端佇列,快速隨機訪問,頭尾插入、刪除很快

list

雙向鍊錶,只支援雙向順序訪問,list任何位置插入,刪除很快

forward_list

單向鍊錶

array

固定大小陣列

string

與vector相似,專門儲存字元

容器操作:

型別別名

含義iterator

迭代器const_iterator

讀取元素(不能修改元素)

建構函式

含義c c

預設建構函式 大小

含義c.size()

c中元素的數目

c.max_size()

可儲存的最大元素數目

c.empty()

判斷是否儲存了元素

獲取迭代器

含義c.begin() ,c.end()

返回指向c首尾元素的迭代器

c.cbegin(),c,cend()

返回const_iterator

不是容器,新增,刪除 介面不同。

新增、刪除元素

含義c.insert()

插入c.emplace()

構造乙個元素

c.erase()

刪除指定元素

c.clear()

刪除c種所有元素

使用迭代器訪問容器。

#include

#include

using

namespace std;

intmain()

;auto it1 = articles.

cbegin()

;for

(it1;it1 != articles.

cend()

;++it1)

}

結果:

a

anthe

容器初始化:

#include

#include

#include

#include

#include

#include

using

namespace std;

void

print_container

(auto con)

cout << endl;

}int

main()

; list

copy_authors

(authors)

; vector<

const

char

*> articles =

;// const char* 元素可轉換為string

forward_list

words

(articles.

begin()

,articles.

end())

; deque

auth_list

(authors.

begin()

,authors.

end())

; array<

int,

5> iarr;

array<

int,

5> iarr2 =

; array<

int,

5> arr2_copy = iarr2;

// 內建的陣列不支援拷貝賦值

int dig[5]

=;int dig_copy[5]

;for

(int i=

0; i<

5;i++)

cout <<

"copy_authors:"

<< endl;

print_container

(copy_authors)

; cout <<

"words:"

<< endl;

print_container

(words)

; cout <<

"arr2_copy:"

<< endl;

print_container

(arr2_copy)

; cout <<

"auth_list:"

<< endl;

print_container

(auth_list)

;}

結果:

copy_authors:

milton shakespeare austen

words:

a an the

arr2_copy:12

345auth_list:

milton shakespeare austen

容器賦值運算運算

含義swap(c1,c2)

交換c1 和 c2中的元素

seq.assign(b,e)

將迭代器b 和 e 範圍內的元素賦值給 seq

assign不適合關聯容器和 array。

容器新增/刪除元素操作

含義c.push_back(t)

尾部建立值為t的元素

c.push_front(t)

頭部建立值為t的元素

c.pop_back(t)

尾部刪除值為t的元素

c.pop_front(t)

頭部刪除值為t的元素

改變容器大小操作

含義c.resize(n)

調整c的大小為n個元素

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