簡體   English   中英

C++ 用於向量中的結構訪問索引或使用引用代替值

[英]C++ for structure in vectors access index or use reference instead value

我假設如果我有,例如:

vector<string> myVector;
myVector.push_back("Camel");
myVector.push_back("is");
myVector.push_back("a");
myVector.push_back("noble");
myVector.push_back("animal");

我這樣做:

for (string val : myVector){
    val = "empty";
}

它不會替換 vector 中的值,因為它已將內容復制到新字符串。

我想我能做到

for (int i=0; i<myVector.size(); i++) {
    myVector[i] = "empty";
}

它將執行該行為。

但是很好。 我的問題是:

存在與第一種情況類似的任何其他結構,我可以說“選擇向量中值的引用,而不是將值復制到新變量”,然后我可以直接影響向量值,並使用for (class value : vector)打字模型?

或者示例的最佳實踐不使用我提到的任何情況? 迭代器?

聲明基於 for 循環的范圍以初始化對每個項目的引用:

for (string& val : myVector){
    val = "empty";
}

現在矢量的項目就地修改了。 “項目”的類型可以是任何...

<item-type> declarator = *itr;

... 當itr是容器的迭代器時有效。

暫無
暫無

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

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