求用c++解决二维数组相关的问题

问题遇到的现象和发生背景

在整数方阵中,确定那些行中不包含负数的元素的乘积

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

int calc(const vector<vector<int>> &vec)
{
    vector<int> temp;
    for (int i = 0; i < vec.size(); ++i) {
        const vector<int> &t = vec[i];
        int sum = 1;
        bool flag = false;
        for (int j = 0; j < t.size(); ++j) {
            if (t[j] < 0) {
                flag = true;
                break;
            }
            sum *= t[j];
        }
        if (!flag) {
            temp.push_back(sum);
        }
    }
    if (temp.empty()) {
        return 0;
    }
    int num = 1;
    for (int i = 0; i < temp.size(); ++i) {
        num *= temp[i];
    }
    return num;
}

这是在考我的语文水平吗

可以采用一些比较简单的做法,用集合包含这个数组非负的元素,然后循环取值判断,最后只需要对集合中的元素做累乘即可