vector是C++標(biāo)準(zhǔn)模板庫中的部分內(nèi)容,它是一個(gè)多功能的,能夠操作多種數(shù)據(jù)結(jié)構(gòu)和算法的模板類和函數(shù)庫。vector之所以被認(rèn)為是一個(gè)容器,是因?yàn)樗軌蛳袢萜饕粯哟娣鸥鞣N類型的對象,簡單地說,vector是一個(gè)能夠存放任意類型的動態(tài)數(shù)組,能夠增加和壓縮數(shù)據(jù)。
向量可將元素存儲在連續(xù)的內(nèi)存位置中,并在運(yùn)行時(shí)根據(jù)需要分配內(nèi)存。
數(shù)組遵循靜態(tài)方法,這意味著在運(yùn)行時(shí)不能更改其大小,而vector實(shí)現(xiàn)動態(tài)數(shù)組意味著在添加元素時(shí)會自動調(diào)整其大小。
創(chuàng)建向量 'v1'。語法為:
vector<object_type> v1;
為了可以使用vector,必須在你的頭文件中包含下面的代碼:
#include <vector>
讓我們看一個(gè)簡單的實(shí)例。
#include<iostream> #include<vector> using namespace std; int main() { vector<string> v1; v1.push_back("nhooo"); v1.push_back(".com"); for(vector<string>::iterator itr=v1.begin();itr!=v1.end();++itr){ cout<<*itr; } return 0; }
輸出:
(cainiaoplus.com)
在此示例中,Vector類用于顯示字符串。
函數(shù) | 描述 |
---|---|
at(idx) | 傳回索引idx所指的數(shù)據(jù),如果idx越界,拋出out_of_range。 |
back() | 返回最后一個(gè)原始,不檢查這個(gè)數(shù)據(jù)是否存在。 |
front() | 返回第一個(gè)元素。 |
swap() | 交換兩個(gè)Vector。 |
push_back() | 在Vector最后添加一個(gè)元素。 |
pop_back() | 它從向量中刪除最后一個(gè)元素。 |
empty() | 判斷Vector是否為空(返回true時(shí)為空) |
insert() | 它將在指定位置插入新元素。 |
erase() | 刪除指定的元素。 |
resize() | 它修改向量的大小。 |
clear() | 它從向量中刪除所有元素。 |
size() | 返回Vector元素?cái)?shù)量的大小。 |
capacity() | 返回vector所能容納的元素?cái)?shù)量(在不重新分配內(nèi)存的情況下) |
assign() | 它將新值分配給向量。 |
operator=() | 它將新值分配給向量容器。 |
operator[]() | 它訪問指定的元素。 |
end() | 返回最末元素的迭代器(實(shí)指向最末元素的下一個(gè)位置) |
emplace() | 它將在位置pos之前插入一個(gè)新元素。 |
emplace_back() | 它在末尾插入一個(gè)新元素。 |
rend() | 它指向向量的第一個(gè)元素之前的元素。 |
rbegin() | 它指向向量的最后一個(gè)元素。 |
begin() | 返回第一個(gè)元素的迭代器。 |
max_size() | 返回Vector所能容納元素的最大數(shù)量(上限)。 |
cend() | 它指向量中的last-last-element。 |
cbegin() | 它指向量的第一個(gè)元素。 |
crbegin() | 它指的是向量的最后一個(gè)字符。 |
crend() | 它指的是向量的第一個(gè)元素之前的元素。 |
data() | 它將向量的數(shù)據(jù)寫入數(shù)組。 |
shrink_to_fit() | 它減少了容量并使它等于向量的大小。 |