zoukankan      html  css  js  c++  java
  • 用 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
    */

  • 相关阅读:
    WEB前端开发工具的初识
    Linux常见问题的处理方法(长期更新)
    eclipse+tomcat开发web项目
    Android适配--百分比的适配
    TCP通信丢包原因总结
    android 实现类似微信缓存和即时更新好友头像
    是否应该开启WebView硬件加速?
    Android通过浏览器打开app页面并且传递值
    设计模式(五)责任链模式
    Android 最新 Support V4 包大拆分有用吗?
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2058038.html
Copyright © 2011-2022 走看看