用 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: 如何建立二维数组 

*        Version: 1.0 
*        Created: 2007年12月20日 22时55分38秒 CST 
*       Revision: none 
*       Compiler: g++ -o 2d.exe 2d.cpp 

*         Author:   Tiao Lu, tlu@math.pku.edu.cn 
*        Company: School of Mathematical Sciences, Peking University 

* ===================================================================================== 
*/ 
#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 
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值