当前位置:编程学习 > C/C++ >>

Vector向量几种情况的总结

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;
}

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,