重复序列构造函数

时间:2011-06-12 04:48:19

标签: c++

我可以建立一个

vector<vector<int> >

使用重复序列构造函数?

我知道我可以建立一个像

vector<int> v(10, 0);

但我不知道如何使用相同的方法构建矢量矢量。谢谢!

3 个答案:

答案 0 :(得分:4)

传递一个向量作为第二个参数:

// 10 x 10 elements, all initialized to 0
vector<vector<int> > v(10, vector<int>(10, 0));

答案 1 :(得分:4)

vector<vector<int> > v(10, vector<int>(30, 0));将创建10个向量,每个向量为30个零。

答案 2 :(得分:0)

explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );

重复序列构造函数: 初始化向量,其内容设置为n次的重复value次。

vector< vector<int> > vI2Matrix(3, vector<int>(2,0));   

创建3个向量,每个向量有2个零。

基本上,人们会使用矢量矢量来表示二维数组。

这是一个源代码示例:

#include <iostream>
#include <vector>

using namespace std;

main()
{
   // Declare size of two dimensional array and initialize.
   vector< vector<int> > vI2Matrix(3, vector<int>(2,0));    

   vI2Matrix[0][0] = 0;
   vI2Matrix[0][1] = 1;
   vI2Matrix[1][0] = 10;
   vI2Matrix[1][1] = 11;
   vI2Matrix[2][0] = 20;
   vI2Matrix[2][1] = 21;

   cout << "Loop by index:" << endl;

   int ii, jj;
   for(ii=0; ii < 3; ii++)
   {
      for(jj=0; jj < 2; jj++)
      {
         cout << vI2Matrix[ii][jj] << endl;
      }
   }
   return 0;
}