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

 

posted @ 2016-09-02 17:21  于光远  阅读(1721)  评论(0编辑  收藏  举报