gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:50:11 25 4
gpt4 key购买 nike

我假设如果我有,例如:

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";
}

它将执行该行为。

但是很好。我的问题是:

存在类似于第一种情况的任何其他结构,我可以说“选择 vector 中值的引用而不是将值复制到新变量”然后我可以直接影响 vector 值而不是 for (class value : vector) 打字模型?

或者不使用我提到的任何案例的示例的最佳实践?迭代器?

最佳答案

声明基于范围的 for 循环以初始化对每个项目的引用:

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

现在 vector 的项目被就地修改了。 “项目”的类型可以是任何...

<item-type> declarator = *itr;

... 当 itr 是容器的迭代器时有效。

关于C++ for structure in vectors access index or use reference instead value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55087777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com