leetcode661,为什么reference binding to null pointer of type 'struct value_type'?

使用的是C++,为什么指针会超出范围呢?参考的是这里
他的答案可以过

 class Solution {
public:
    vector<vector<int>> imageSmoother(vector<vector<int>>& M) {
        if (M.empty() || M[0].empty()) return {};
        int m = M.size(),n = M[0].size();
        vector<vector<int>> res,dirs = {{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1},{0,1},{1,1}};
        for(int i = 0; i < m; ++i)
            for(int j = 0; j < n; ++j){
                int m = M[i][j],cnt = 1;
                for(auto dir:dirs){
                    int i_plus = i + dir[0], j_plus = j + dir[1];
                    if(i_plus < 0 || i_plus >= m || j_plus < 0 || j_plus >= n) continue;
                    m += M[i_plus][j_plus];
                    ++cnt;
                }
                res[i][j] = m / cnt;
            }
        return res;
    }
};