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

  • 相关阅读:
    解决SpringMVC中jsp页面无法加载js,css,jpg中的信息
    浅谈SpringMVC
    Java垃圾回收与算法
    Linux常见命令
    Warm_up(HCTF_2018)
    house_of_storm 详解
    malloc 函数分析 glibc2.23
    Fastbin attack 总结
    Unlink学习总结
    xman_2019_format(非栈上格式化字符串仅一次利用的爆破)
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2058038.html
Copyright © 2011-2022 走看看