c++ - 带参考的矢量
问题描述
我正在学习 C++,但我很难理解为什么会这样。我知道引用只是某个对象的同义词。但我不明白为什么会这样
std::vector<int> v{1,2,3};
for (auto &i : v) //using reference
i *= i;
输出1,4,9
和这个
std::vector<int> v{1,2,3};
for (auto i : v) //without using reference
i *= i;
输出1,2,3
?
先感谢您
解决方案
这也是同样的原因:
int a=2;
int &b=a;
b=3;
为什么这最终设置a
为 3,但是:
int a=2;
int b=a;
b=3;
a
仍然是2
,并且只有b
3。
向量本身无关紧要,这与参考的基本概念有关。引用为被引用对象创建别名。“非引用”创建一个新对象。auto &i
创建参考。auto i
创建一个新对象并通过从另一个对象复制其值来初始化它,在本例中为向量中的每个值。
推荐阅读
- c# - 使用 modelbuilder.HasKey() 会导致实体框架新迁移出错
- netsuite - NetSuite SCA - 对页脚所做的编辑未显示
- django - Django Rest Framework中更新方法的区别?
- python-3.x - 忽略命令中的异常无:discord.ext.commands.errors.CommandNotFound:找不到命令“makePoll”
- r - 如何读取同一文件夹中多个 .txt 文件的第一行并写入 R 中的另一个 .txt 文件?
- netbeans - Netbeans JavaDB 无法启动
- azure - Azure devops Octopus 部署版本名称 semver 检查
- javascript - 错误:无法读取未定义的属性“歌曲”-discord.js
- r - 是否可以嵌套传递给 rlang::dots_list 的 tibble?
- flutter - 如何在 Flutter 的类外运行 void 命令