C 用于向量中的结构访问索引或使用参考值

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

本文关键字:参考 索引 访问 向量 用于 结构      更新时间:2023-10-16

我假设如果我得到了,例如:

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

它不会替换向量中的值,因为它已将内容复制到新字符串。

我假设我可以做

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

它将执行行为。

但是。我的问题是:

存在与第一种情况类似的其他结构,我可以说"选择向量中的值的引用,而不是复制到新变量",然后我可以直接影响向量值,然后让for (class value : vector)键入模型?

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

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

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

现在,向量的项目已在就位。"项目"的类型可以是...

的任何东西
<item-type> declarator = *itr;

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