我有以下功能:
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
,该元素只能包含int
s。
这就是编译器告诉你的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句