//頭文件
#include<vector>
using std::vector;
vector<T> v1;
vector<T> v2(v1);
vector<T> v3(n,i);
vector<T> v4(n);
//創建確定個數的vector對象
vector<int> ivec4(10,-1);
vector<string> ivec4(10,"hi!");
//值初始化
//如果沒有指定元素初始化,那么標准庫將個自行提供一個元素初始值進行值初始化,如:vector保存內置類型(int)的元素,那么標准庫將用0值創建元素舒適化式;
//如果保存的是有構造函數類型的元素,標准庫將用改類型的默認構造函數創建元素初始化式;
//vector對象操作
v.empty()//如果v為空則返回true,否則返回false。
v.size()//返回v中元素的個數
v.push_back(t)//在v的末尾增加一個值為t的元素
v[n]//返回v中位置為n的數
v1=v2 // 把v1的元素替換為v2中元素的副本;
vi==v2 // 如果v1與v2相等則返回true
!=<<=>>=保持這些操作符慣有的含義
//vector對象的size
//使用size_type 時必須指出該類型是在哪里定義的
vector<int>::size_type
//向vector中添加元素
push_back()//將一個新元素添加到vector對象的后面
//vector的下標操作
for(vector<int>::szie_type ix=0; ix!=ivec.size(); ix++)
{
ivec[ix]=0;
}
//下標操作不能添加元素只能通過 push_back();下標操作僅能對已存在的元素進行下標操作
//vector迭代器
//標准庫為每種標准容器定義了一種迭代器類型,所有的標准庫迭代器都定義了相應的迭代器類型,而只有少數的容器支持下標操作
//容器的iterator類型
vector<int>::iterator iter;
//數據類型:由vector<int>定義的iterator類型。
//begin 和end操作
//每種容器都定義了一對命名為begin和end的函數,用於返回迭代器
vector<int>::iterator iter= ivec.begin();
//把iter初始化為由名為begin的vector操作返回值的值。及iter指該元素為ivec[0].
//vectror的自增和解引用運算
//迭代器類型使用解引用操作符(*操作符)來訪問迭代器所指元素:
*iter=0;
++iter //指向第二個元素
//由於end操作返回的迭代器不指向任何一個元素,因此不能進行自增和解引用操作
//其他操作
==!=
//應用程序示例
for(vector<int>::iterator iter=ivec.gebin(); iter!=ivec.end();++iter)
{
*iter =0;
}
//const_iterator
//const_iterator自身的值可以改變,但不能改變其所指向的元素的值,可以對迭代器進行自增及解引用操作來讀取值,但不能對該元素進行賦值
//const_iterator和const的iterator對象不一樣
//聲明一個const迭代器必須初始化,一旦初始化后就不能改變其值
vector<int> nums(10);
cosnt vector<int>::iterator cit= nums.begin();
*cit=1;//初始化
++cit;錯不能改變cit的值
//迭代器的算術操作
iter +n
iter - n