簡體   English   中英

通過引用傳遞向量並在基於范圍的 for 循環中更改其值?

[英]Passing a vector by reference and changing its values in a range-based for loop?

我正在嘗試通過執行類似於以下函數的操作來更改向量的值:

vector<int> Question2_Part3(vector<int> &v){

    for(auto elem : v){
        elem *= 2;
        cout << elem << " ";
    }
    cout << "\n" << endl;

    return v;
}

這可能嗎? 我知道在我的 for 循環中,正在改變的是elem的值。 我可以在更改v的值的同時獲得相同的輸出並仍然使用基於范圍的 for 循環嗎?

是的,這是可能的,但使用參考

for (auto &elem : v) {
    elem *= 2;
    cout << elem << " ";
}

這也更有效,因為它避免將每個向量元素復制到變量。 實際上如果你不想改變你應該做的元素

for (const auto &elem : v) {
    cout << elem << " ";
}

更多細節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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