• vector二维数组


    一、定义二维数组的两种方式:

    //初始化一个m*n的二维数组
    vector<vector<int> > array(m);
    for(int i=0;i<m;i++) 
    {
        array[i].resize(n);
    }
    //创建一个row行,column列(初始值均为0)的二维数组
    vector<vector<int>> vec(row,vector<int>(column,0));

    C++构建二维动态数组

    int **p;
    p = new int*[10];    //注意,int*[10]表示一个有10个元素的指针数组
    for (int i = 0; i < 10; ++i)
    {
        p[i] = new int[5];
    }

     

    二、使用迭代器对二维数组遍历

    void reverse_with_iterator(vector<vector<int>> vec)
    {
        if (vec.empty())
        {
            cout << "The vector is empty!" << endl;
            return;
        }
    
        vector<int>::iterator it;
        vector<vector<int>>::iterator iter;
        vector<int> vec_tmp;
    
        cout << "Use iterator : " << endl;
        for(iter = vec.begin(); iter != vec.end(); iter++)
        {
            vec_tmp = *iter;
            for(it = vec_tmp.begin(); it != vec_tmp.end(); it++)
                cout << *it << " ";
            cout << endl;
        }
    }

    三、练习题

    867. 转置矩阵

    给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。

    矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

    class Solution {
    public:
        vector<vector<int>> transpose(vector<vector<int>>& matrix) {
            int row=matrix.size();      //表示原矩阵有row行
            int column=matrix[0].size();  //表示原矩阵有column列
            vector<vector<int>> vec(column);
            for(int i=0;i<column;i++)
            {
                vec[i].resize(row);
            }
            //等价于vector<vector<int>> vec(column,vector<int>(row,0));
            for(int i=0;i<row;i++)
            {
                for(int j=0;j<column;j++)
                {
                    vec[j][i]=matrix[i][j];
                }
            }
            return vec;
        }
    };
    天晴了,起飞吧
  • 相关阅读:
    hdu2089 不要62 (数位dp)
    LightOJ 1140
    在n到m中 有多少个1 (数位dp)
    Frequent Subsets Problem 状态压缩 判断出现的次数
    LightOj 1215
    LightOJ 1197
    Spring 知识点提炼
    设计模式—访问者模式
    设计模式—模板模式
    设计模式—策略模式
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/14444665.html
Copyright © 2020-2023  润新知