![](/img/trans.png)
[英]no matching function for call to 'std::vector<std::vector<int> >::push_back(int)'
[英]C++ - copying vector in foreach gives "No matching function to call for 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
元素中,該元素只能保存int
s。
這就是編譯器告訴你的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.