容器
•順序式容器:
vecto–>動態陣列,從末尾快速插入刪除,直接訪問任何元素•關聯式容器:list–>雙鏈表,從任何地方快速插入刪除
deque–>雙向佇列,從前面與後面快速插入刪除,直接訪問任何元素
priority_queue–>優先佇列,最高優先順序元素總是最先出列
stack–>棧,後進先出、先進後出
set–>集合,快速查詢,不允許有重複值定義:multiset–>快速查詢,允許有重複值
map–>一對一對映,基於關鍵字快速查詢,不允許有重複值
multimap–>一對多對映,基於關鍵字快速查詢,允許有重複值
定義int型別陣列
vector <
int> a ;
//預設初始化,a 為空
vector <
int> b ( a )
;//用a定義b
vector <
int> a (
100)
;//定義a有100個值為0的元素
vector <
int> a (
100,x )
;//定義a有100個值為x的元素
定義string型別陣列
vector < string > a (
10,」null」 )
;//定義a有10個值為null的元素
vector < string > arr (
10,」hello」 )
;//定義a有10個值為hello的元素
vector < string > b ( b (a.begin)
,a.end()
);// b是a的複製
定義結構型陣列
struct point
;vector < point > a // a 用於儲存座標
定義多維陣列:
vector <
int>
[110];
//陣列一維度是固定的110,而第二維是動態的
常用操作:
a.
push_back
(100);
//在尾部新增元素
int size = a.
size()
;//元素個數
bool isempty = a.
empty()
;//判斷是否為空
cout << a [0]
;//輸出首元素
a.insert
(a.begin()
+i,k)
;//中間插入,在第i個元素前插入k
a.push_back
(x)//在尾部插入值為x的元素
a.insert
(a.end()
,n,x)
//在尾部插入n個值為x的元素
a.pop_back()
;//刪除末尾的元素
a.erase
(a.begin()
+i,a.
begin()
+j);
//刪除區間[i,j-1]的元素
a.erase
(a.begin()
+i);
//刪除第i-1個元素
a.resize
(n);
//調整陣列大小為n
a.clear()
;//清空
reverse
(a.begin()
,a.end()
);//使用函式reverse()反轉陣列
sort
(a.begin()
,a.end()
);//使用函式sort()讓陣列從小到大排序
VECTOR動態陣列
vector是同一種型別的物件的集合 vector的資料結構很像陣列,能非常高效和方便地訪問單個元素 vector是乙個類模板 class template 要使用vector必須包含相關標頭檔案 include using std vector 注 空間是連續的 空間是可以擴充套件的 貌似是矛盾的...
vector 動態陣列
含義v.push back 在vector最後新增乙個元素 v.pop back 移除最後乙個元素 v.insert 插入元素到vector中 v.back 返回最末乙個元素 v.begin 返回第乙個元素的迭代器 v.end 返回最末元素的迭代器 譯註 實指向最末元素的下乙個位置 v.erase ...
vector動態建立陣列
相應的標頭檔案 include vector定義向量物件 vector ivec 定義向量物件 ivec vector ivec1 ivec 定義向量物件ivec1,並用ivec初始化 vector ivec2 n,1 定義向量ivec2,包含了n個值為1的元素 vector ivec3 n 定義向...