您的位置:首页 > 其它

Vector向量几种情况的总结

2012-08-21 10:17 232 查看
1.vector向量几种情况总结
vector<int> k;//向量
vector<int*> kk;//int指针的向量,以后再详细斟酌
vector<int> *kkk;//vector向量指针
vector<int*> *kkkk;//int指针的向量指针

各中情况的运用:


//定义int型的一个vector,并赋值

vector<int> k;

int* v
= new
int[10];

for (int t=0; t<10;
t++)

{

v[t] = t;

k.push_back(v[t]);//向k中追加值

}

//定义int*型 的一个vector,并赋值

vector<int*> kk;

int* t
= new
int[10];

for(int j=0; j<10;j++)

{

t[j] = j;

kk.push_back(&t[j]);//向kk中追加值

}

//说明,kk.push_back(&t[j])这种形式是正确的,网上查询的kk.push_back(t)是错误的,因为push_back(*const type),t是指针。

//int型的vector指针

vector<int>
*kkk;

kkk = new vector<int>[5];

for (int bb=0; bb<5;
bb++)

{

for (int a=0; a<10;
a++)

{

kkk[bb].push_back(a);//像向量指针中追加值

}

}


//输出

for (int a=0; a<k.size(); a++)

{

cout<<"k["<<a<<"] ="<<k[a]<<endl;

}

for(int a=0; a<kk.size(); a++)

{

cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;

}

for(int bb=0; bb<5;
bb++)

{

for(int aa=0; aa<kkk[bb].size(); aa++)

cout<<"kkk["<<bb<<"]["<<aa<<"]=
"<<kkk[bb][aa]<<endl;

}

//释放向量中int指针

for (std::vector<int*>::iterator
it = kk.begin(); it<kk.end();it++)

{

delete
*it;

}

k.clear();//清除k向量

kk.clear();//清除kk向量

for (int bb=0; bb<5;
bb++)

{

kkk[bb].clear();

}

详细实现:


//vector向量练习

int exciseVector()
{
//定义int的一个vector,并赋值
vector<int> k;
int* v = new int[10];
for (int t=0; t<10; t++)
{
v[t] = t;
k.push_back(v[t]);//向k中追加值

}

//定义int* 的一个vector,并赋值
vector<int*> kk;
int* t = new int[10];
for(int j=0; j<10;j++)
{
t[j] = j;
kk.push_back(&t[j]);//向kk中追加值
}
int* tt = new int[5];
for (int j=0;j<5;j++)
{
tt[j] = 2*j;
kk.push_back(&t[j]);
}

//vector指针
vector<int> *kkk;
kkk = new vector<int>[5];
for (int bb=0; bb<5; bb++)
{
for (int a=0; a<10; a++)
{
kkk[bb].push_back(a);//像向量指针中追加值
kkk[bb].push_back(2*a);
}
}

//类型为指针的vector指针
vector<int*> *kkkk;

//输出
for (int a=0; a<k.size(); a++)
{
cout<<"k["<<a<<"] ="<<k[a]<<endl;
}
for(int a=0; a<kk.size(); a++)
{
cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;
}
for(int bb=0; bb<5; bb++)
{
for(int aa=0; aa<kkk[bb].size(); aa++)
cout<<"kkk["<<bb<<"]["<<aa<<"]= "<<kkk[bb][aa]<<endl;
}
//释放向量中int指针
for (std::vector<int*>::iterator it = kk.begin(); it<kk.end();it++)
{
delete *it;
}
k.clear();//清除k向量
kk.clear();//清除kk向量
for (int bb=0; bb<5; bb++)
{
kkk[bb].clear();
}

delete[] t;
delete[] kkk;
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: