C++ - 在 foreach 中复制向量给出“没有匹配的函数来调用 std::vector<int>::push_back(std::vector<int>&)”

维克多·雨果

我有以下功能:

std::vector<std::vector<int>> solve(int t){
    std::vector<std::vector<int>> result;
    result.push_back(std::vector<int>(2*t,0));
    //CODE TO fill up result[0]
    return result;
}

当我编写以下代码以获得结果时:

std::vector<std::vector<int>> results(4);
for(int t = 0; t < 4; ++t){
    std::vector<std::vector<int>> cols = solve(t);
    if(cols.size() > 0){
        for(std::vector<int> col: cols){
            results[t].push_back(col);            
        }
    }
}

我收到以下错误:

src/pricing.cpp:33:29: error: no matching function for call to ‘std::vector<int>::push_back(std::vector<int>&)’
 results[t].push_back(col);

据我了解,基于的范围是col作为参考创建的。我不明白的是push_back能够插入col. 为什么会出现这种情况,什么是插入的最佳方式col进入results[t]

马歇尔·克劳

col是一个vector<int>

您正在尝试将其添加到 的元素中results,该元素只能包含ints。

这就是编译器告诉你的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章