本文参考了:https://blog.csdn.net/u013068755/article/details/70198924
https://blog.csdn.net/u010186001/article/details/59141786###;
在vector<vector<int>>
中,因为vector是一个容器,最外层的vector容器中放着更小的vector,而里层的vector里面放的是int型的数字。所以我们首先要对里层的vector容器赋值,然后再把里层的vector作为元素插入到外层的vector中。
综合了一下网上的各种说法,理解如下:
未指定向量大小时不可直接访问;
解决方法:1. push_back函数;
设定的是具体的某一向量长度;
2. resize函数;
可随时更改长度,且不受最初设定的向量多少限制;
贴代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector< vector<int> > array(3);
for(int i=0;i<3;i++)
array[i].resize(4);//设置数组的大小3X4
//现在你可以和使用数组一样使用这个vector
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
array[i][j]=(i*j);
//输出
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
cout<<array[i][j]<<" ";
cout<<endl;
}
array.resize(5);
array[3].resize(3);
array[4].resize(3);
//现在是5X3的数组了
for(int i=0;i<5;i++)
for(int j=0;j<3;j++)
array[i][j]=(i*j);
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
cout<<array[i][j]<<" ";
cout<<endl;
}
}