初始化
vector<int> v1(10);
//定義了10個整型元素的向量,<>中式元素的類型名
vector<int> v2(10, 1);
//定義了10個整型元素的向量,且每個元素的初值爲1
vector<int> v3(v2);
//用v2向量來創建v3向量
vector<int> v4(v2.begin(), v2.begin() + 3);
//定義了v4值爲v2中的前三個元素
int v5[5] = { 1,2,3,4,5 };
vector<int> v6(v5, v5 + 5);
//從數組中獲得初值
語法
C++ Vectors能夠使用標準運算符: ==, !=, <=, >=, <, 和 >. 要訪問vector中的某特定位置的元素可以使用 [] 操作符
vectors之間大小的比較是按照詞典規則
兩個vectors被認爲是相等的,如果:
1. 它們具有相同的容量
2. 所有相同位置的元素相等
常用函數
void push_back(const TYPE &val);
//添加值爲val的元素到當前vector末尾
void pop_back();
//刪除當前vector最末的一個元素
TYPE front();
//返回vector的第一個元素的引用
TYPE back();
//返回vector的最後一個元素的引用
iterator begin();
//返回一個指向vector起始元素的迭代器
iterator end();
//返回一個指向vector末尾元素的下一位置的迭代器
size_type size();
//返回當前vector所容納元素的數目
bool empty();
//若vector爲空,返回true;否則,返回false
void clear();
//清空當前vector的所有元素
//返回當前vector指定位置loc的元素的引用,比[]更安全,能夠辨別出是否越界,並在越界時拋出異常
TYPE at( size_type loc );
//賦num個值爲val的元素到vector中,賦值前清空vector
void assign( size_type num, const TYPE &val );
//將區間[start,end)的元素賦值到當前vector,賦值前清空vector
void assign( input_iterator start, input_iterator end );
//刪除指定位置loc的元素,並返回指向刪除的最後元素的下一位置的迭代器
iterator erase( iterator loc );
//刪除區間[start,end)的所有元素,並返回指向刪除的最後元素的下一位置的迭代器
iterator erase( iterator start, iterator end );
//在指定位置loc前插入值爲val的元素,返回指向這個元素的迭代器
iterator insert( iterator loc, const TYPE &val );
//在指定位置loc前插入num個值爲val的元素
void insert( iterator loc, size_type num, const TYPE &val );
//在指定位置loc前插入區間[start,end)的所有元素
void insert( iterator loc, input_iterator start, input_iterator end );
reverse_iterator rbegin();
//返回一個指向vector末尾元素的迭代器
reverse_iterator rend();
//返回一個指向vector起始元素的前一位置的迭代器
//C++11前
//若當前大小大於 count ,則減小容器爲其首 count 個元素
//若當前大小小於 count ,則後附額外元素,並以 value 的副本初始化
void resize( size_type count, T value = T());
//C++11後
//若當前大小大於 count ,則減小容器爲其首 count 個元素
//若當前大小小於 count ,
// 1) 則後附額外的默認插入的元素
// 2) 則後附額外的 value 的副本
void resize( size_type count );
//(1)
void resize( size_type count, const value_type& value );
//(2)
其它相關函數(需要頭文件algorithm)
//去掉vector中重複的元素
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
//C++20前
//反轉 [first, last) 範圍中的元素順序,沒有返回值
template< class BidirIt >
void reverse( BidirIt first, BidirIt last );
例:
reverse(v.begin(),v.end());
//C++20前
//複製 [first, last) 中的元素到始於d_first的另一範圍
//返回指向目標範圍中最後複製元素的下個元素的輸出迭代器
template< class InputIt, class OutputIt >
OutputIt copy( InputIt first, InputIt last, OutputIt d_first );
例:
copy(v.begin(),v,end(),v1.begin());
//C++20前
//返回範圍 [first, last) 中等於value的首個元素
//返回指向首個滿足條件的迭代器,或若找不到這種元素則爲 last
template< class InputIt, class T >
InputIt find( InputIt first, InputIt last, const T& value );
例:
find(v.begin(),v.end(),10);