vector创建2维数组

Posted 于光远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector创建2维数组相关的知识,希望对你有一定的参考价值。

1   //二维vector初始化
2     vector< vector<int> > vt;//初始化一个 二维vector
3     vector<vector<int> > vect(vt);//使用另一个 二维 vector 初始化当前二维vector
4     vector< vector<int> > vec(row,vector<int>(column));//初始化一个 二维的vector 行row,列column,且值为0
5     vector<vector<int> > visited(row,vector<int>(column,6));//初始化一个 二维vector 行row,列column ,且 值为data=6 自定义data;
6     vector<vector<int> > vecto(row,vector<int>(vt[0].begin()+1,vt[0].begin()+3));////初始化一个 二维vector 行row,第二个参数为一维vector;

 

以前我要建立一个二维数组,总是使用 
int N=5, M=6; 
vector<vector<int> > Matrix(N); 
for(int i =0; i< Matrix.size(); i++){ 
   Matrix[i].resize(M); 

上面多写了三行,就是为了指定 Matrix 的烈数。 
今天才发现,可以用更简单的方法完成上面的工作 
下面的一行就可以代替上面的四行 
vector<vector<int> > Matrix(N, vector<int>(M)); 

 

#include <iostream>
using namespace std;

#include <vector>

int main(void)
{
  vector <vector <int>>   array(3,vector<int>(3));

//    vector<vector <int>>array(3);
//    for (int i = 0; i <3; i++)
//        array[i].resize(3);//设置数组的大小3X3 
//现在你可以和使用数组一样使用这个vector 

    for (int i = 0; i <3; i++)
        for (int j = 0; j <3; j++)
            array[i][j] = (i*j);
    //输出 
    for (int i = 0; i <3; i++)
    {
        for (int j = 0; j <3; j++)
            cout <<array[i][j] << "   ";
        cout <<endl;
    }

    cout << "-------------" << endl;
    array[0].swap(array[1]);  //数组交互

    for (int i = 0; i <3; i++)
    {
        for (int j = 0; j <3; j++)
            cout << array[i][j] << "   ";
        cout << endl;
    }
}

 

以上是关于vector创建2维数组的主要内容,如果未能解决你的问题,请参考以下文章

用于保存任何维数组的C ++变量

java Vector 怎么用一个Vector来给一个以维数组赋值呢?

使用推力的向量数组

使用 n 维 C++ Vector 类实现算术运算符重载的更好方法?

以下代码片段的时间复杂度是多少?

如何从填充零的 3 维 numpy 数组创建 4 维 numpy 数组?