簡體   English   中英

C++ - 在 foreach 中復制向量給出“沒有匹配的函數來調用 std::vector<int> ::push_back(std::vector)<int> &amp;)”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM