引用绑定到类型为'value_type'的空指针LeetCode 832

时间:2018-06-24 21:30:51

标签: c++

class Solution {
public:
    vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
        for(int i = 0; i < A.size(); i++){
            std::reverse(A[i].begin(), A[i].end());
            for(int j = 0; j < A[i].size(); i++ ){
                 if(A[i][j] == 0){
                     A[i][j] = 1;
                 }
                else{
                    A[i][j] = 0;
                }
            }
        }
        return A;
    }
};

这是针对LeetCode问题832的。我似乎找不到我的代码有什么问题。我将每个整数矢量的内容取反,然后取反。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您在输入错误索引时遇到错字。

您可以通过使用范围循环来避免此类问题

vector<vector<int>> flipAndInvertImage(vector<vector<int>>& a) {
    for (auto& v: a) {
        std::reverse(v.begin(), v.end());
        for (auto& c: v) {
            c = !c;
        }
    }
    return a;
}

或避免循环

vector<vector<int>> flipAndInvertImage(vector<vector<int>>& a)
{
    std::for_each(a.begin(),
                  a.end(),
                  [](vector<int>& b) {
                      std::reverse(b.begin(), b.end());
                      std::transform(b.begin(), b.end(), b.begin(), [](int i) { return !i; })
                  });
    return a;
}

(“修改参数返回副本”的想法有点奇怪。您可能需要重新考虑。)