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

你可能感兴趣的:(Vector向量几种情况的总结)