c++ - 用于向量中结构的 C++ 访问索引或使用引用而不是值
问题描述
我假设如果我有,例如:
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 循环的范围以初始化对每个项目的引用:
for (string& val : myVector){
val = "empty";
}
现在向量的项目被原地修改。“项目”的类型可以是任何...
<item-type> declarator = *itr;
... 是itr
容器的迭代器时有效。
推荐阅读
- python - 如何删除特定长度的子字符串周围的括号?
- google-apps-script - 谷歌表单/appscript - 如何根据答案在部分之间跳转(通过appascript)?
- reactjs - 在 Formik 字段中禁用 Google Chrome 地址自动完成 - ReactJs
- python - 如何使用 Python 将“.txt”文件附加到电子邮件中?
- xml - 允许一系列 VLAN NSO CISCO
- android - 热区信息
- r - 设置以防止 R 更新使用 apt 安装的库
- php - 项目的刮板循环,如果它是空的则跳过
- c# - 如何在 WPF 应用程序的另一侧创建具有更改内容的垂直菜单?
- python - 在 python 蛇游戏中添加游戏屏幕