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
    */

  • 相关阅读:
    jquery 插件扩展2
    jquery 插件扩展
    call apply bind
    bom object
    js oop 封装
    js oop 继承
    js页面之间传参2
    js弹出新窗口的6中方法
    display Tag
    js中extends方法
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2058038.html
Copyright © 2011-2022 走看看