You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中修改int变量x为何不改变vector内对应元素值的疑问

为什么修改x不会改变vector内的元素?

你代码里的int x = vec.at(0);这一行,vec.at(0)确实返回vector中第一个元素的引用,但你把它赋值给普通int类型的x时,x会创建一个独立的变量,拷贝原元素的值(也就是5)。这时候x和vector里的元素是两个完全分开的对象,修改x自然不会影响原vector里的元素。

如果想让x成为vector元素的别名,修改x就能同步改变原元素,需要把x声明为引用类型:

int& x = vec.at(0); // 这里的&表示引用

这样当你执行x = 7时,vector内的元素值就会变成7了。

简单说,C++里的引用是变量的别名,必须在声明时绑定到目标对象;普通变量只会存储值的副本,副本的修改和原对象无关。

内容的提问来源于stack exchange,提问作者lafarrjam99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:10:47