vector介紹
vector是C++標(biāo)準(zhǔn)模板庫(kù)中的部分內(nèi)容塘幅,它是一個(gè)多功能的菇怀,能夠操作多種數(shù)據(jù)結(jié)構(gòu)和算法的模板類和函數(shù)庫(kù)。vector之所以被認(rèn)為是一個(gè)容器晌块,是因?yàn)樗軌蛳袢萜饕粯哟娣鸥鞣N類型的對(duì)象,簡(jiǎn)單地說帅霜,vector是一個(gè)能夠存放任意類型的動(dòng)態(tài)數(shù)組匆背,能夠增加和壓縮數(shù)據(jù)。
為了可以使用vector身冀,必須在你的頭文件中包含下面的代碼:
#include
vector屬于std命名域的钝尸,因此需要通過命名限定,如下完成你的代碼:
usingstd::vector;
vector vInts;
或者連在一起搂根,使用全名:
std::vector vInts;
建議使用全局的命名域方式:
usingnamespacestd;
簡(jiǎn)單介紹與基本技巧:
(1)vector< 類型 > 標(biāo)識(shí)符 ;
(2)vector< 類型 > 標(biāo)識(shí)符(最大容量) 珍促;
(3)vector< 類型 > 標(biāo)識(shí)符(最大容量,初始所有值)剩愧;
(4) int i[4] = {12,3,4,5};
vector<類型>vi(i?,?i+2);?//得到i索引值為3以后的值?猪叙;
(5)vector< vector > //vi 定義2維的容器;記得一定要有空格仁卷,不然會(huì)報(bào)錯(cuò)
vectorline
//?在使用的時(shí)候一定要首先將vi個(gè)行進(jìn)行初始化;
for(inti=0;?i<10;?i?++)
{
line.push_back(i);
}
///?個(gè)人認(rèn)為使用vector定義二維數(shù)組很好穴翩,
因?yàn)槭情L(zhǎng)度可以不預(yù)先確定。很好锦积。
(6)C++ Vector排序
vectorvi?;
vi.push_back(1);
vi.push_back(3);
vi.push_back(0);
sort(vi.begin()?,?vi.end());?///?/小到大
reverse(vi.begin(),vi.end())?///?從大道小
(7)順序訪問
vectorvi?;
for(?inti=0;?i<10;?i?++)
{
vi.push_back(i);
}
for(inti=0;?i<10;?i?++)?///?第一種調(diào)用方法
{
cout<
}
for(vector::iteratorit=vi.begin()?;
it?!=vi.end()?;?it++)?///第二種調(diào)用方法
{
cout<<*it<<"?"?;
}
(8)尋找
vectorvi?;
for(?inti=0;?i<10;?i?++)
{
vi.push_back(i);
}
vector::interatorit=find(vi.begin()?,?vi.end,3)?;
cout<<*it<
(9)使用數(shù)組對(duì)C++ Vector進(jìn)行初始化
int?i[10]?={1,2,3,4,5,6,7,78,8}?;
///第一種
vectorvi(i+1,i+3);?///從第2個(gè)元素到第三個(gè)元素
for(vector::interatorit=vi.begin()?;
it?!=?vi.end()?;?it++)
{
cout<<*it<<"?"?;
}
(10) 結(jié)構(gòu)體類型
struct?temp
{
public?:
string?str?;
public?:
int?id?;
}tmp;
int?main()
{
vectort?;
temp?w1?;
w1.str="Hellowor";
w1.id=?1?;
t.push_back(t1);
cout<
return?0?;
}