您的位置:首页 > 其它

用STL 中的vector创建二维数组

2016-05-05 18:14 405 查看



STL 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));

/*

* =====================================================================================

*

* Filename: 2d.cpp

*

* Description: 如何建立二维数组

*

* =====================================================================================

*/

#include <vector>

#include <iostream>

#include <iterator>

using namespace std;

int main(){

int N=2,M=3;

vector<vector<int> > Matrix(N, vector<int>(M,-1));

ostream_iterator<int> os(cout, " ");

Matrix[0][2]=4;

//交换矩阵的两行

Matrix[0].swap(Matrix[1]);

//交换矩阵第二行的两个元素

swap(Matrix[1][0],Matrix[1][2]);

for(int i=0;i<Matrix.size();i++){

copy(Matrix[i].begin(),Matrix[i].end(),os);

cout<<endl;

}

return EXIT_SUCCESS;

}

/**输出结果

*

tlu:stl$ g++ -o 2d.exe 2d.cpp

tlu:stl$ ./2d.exe

-1 -1 -1

-1 -1 4

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: