学习C++之STL:vector嵌套vector

在日常生活中我们可以将若干个小容器嵌套在一个大容器中,vector也可以这么做。
1.创建容器

vector<vector<int> > v;//v的每个元素都是一个整形动态数组
//两个连续的>之间最好加空格,否则有的编译器识别不了

2.存入元素

//首先创建小容器
vector<int> v1;
vector<int> v2;
vector<int> v3;
//往小容器中存入元素
for(int i=0;i<3;i++)
{
  v1.push_back(i+1);
  v2.push_back(i+4);
  v3.push_back(i+7);
}
//把小容器存入大容器
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);

3.遍历输出

for(vector<vector<int> >::iterator it=v.begin();it!=v.end();it++)
{
  //(*it)是个vector<int>型的小容器
  //故要再创建相应的迭代器才能访问其中元素
  for(vector<int>::iterator vit=(*it).begin();vit!=(*it).end();vit++)
    cout<<*vit<<" ";
  cout<<endl;
}

另外vector容器嵌套也可以用二维数组的下标方式进行访问,不过必须要初始化一维数组的数量,示例代码如下:

//每个一维数组初始化为3个'\0'
vector<vector<char> > vc(3,vector<char>(3,'\0'));
//回顾之前vector构造函数内容,也可以用拷贝构造函数,区间拷贝构造函数

//如果想要每行元素个数不同,可以这样写
//vector<vector<int> > V(自定义行数,vector<int>());
//for(int i=0;i<自定义行数;i++)
//  V[i].resize(自定义每行元素个数);

//存入元素
for(int i=0;i<3;i++)
{
  vc[0][i]='A'+i;
  vc[1][i]='D'+i;
  vc[2][i]='G'+i;
 }
 //遍历元素
 for(int i=0;i<3;i++)
 {
   for(int j=0;j<3;j++)
     cout<<vc[i][j]<<" ";
   cout<<endl;
 }

最后附上代码执行结果:
在这里插入图片描述

发布了17 篇原创文章 · 获赞 36 · 访问量 488

猜你喜欢

转载自blog.csdn.net/qq_44643644/article/details/104801287