代码中的“ vector <vector <int >>&indexs”是什么意思?

时间:2019-11-12 10:44:23

标签: c++

我只是不明白vector<vector<int>>&索引的意思是....以及下一行vector<vector<int>> matrix(n, vector<int>(m, 0));

class Solution {
public:
    int oddCells(int n, int m, vector<vector<int>>& indices) 
    {
        vector<vector<int>> matrix(n, vector<int>(m, 0));
        for(int i=0;i<indices.size();i++) {
            for(int j=0;j<m;j++) matrix[indices[i][0]][j]++;
            for(int j=0;j<n;j++) matrix[j][indices[i][1]]++;
        }
        int res=0;
        for(int i=0;i<n;i++) {
            for(int j=0;j<m;j++) res+=matrix[i][j]%2!=0;
        }
        return res;
    }
};

1 个答案:

答案 0 :(得分:3)

vector<X>的意思是“ X的向量”,无论X是什么。

在您的情况下,您有一个vector<vector<int>>,因此您的Xvector<int>。我们可以将其读为“(int的向量)的向量”。

此外,末尾的&表示它是对此类型的引用。

有时会用来表示二维数组,但是由于各种原因,这是一个非常糟糕的实现。在这种情况下,显然可以用来存储二维矩阵。

下一行声明的值与参数中使用的类型相同,并使用大小为n的{​​{1}}个向量初始化,每个向量包含m个零。