容器名稱
性質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是雙向鍊...