c++ - vector::引用

标签 c++ vector reference

给出这个定义:

vector<some_struct_t> lots_of_stuff;

事实上,vector::at 返回一个引用,这段代码对我来说很有意义:

some_struct_t & ref_element = lots_of_stuff.at(0);

但是,这段代码也可以编译并且似乎可以工作:

some_struct_t val_element = lots_of_stuff.at(0);

非引用如何在这里工作?是否调用了复制构造函数?为什么这有效?

最佳答案

非引用会从返回的引用复制一份到您的对象。对对象的更改不会像引用版本那样应用于 vector 中的对象。

关于c++ - vector::引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4911187/

相关文章:

c++ - 涉及 boost::thread 的奇怪崩溃

c++ - 如何自动矢量化基于范围的 for 循环?

c++ - 合并功能未正确复制到 vector 中

c++ - wxWidgets:对 wxURL 的 undefined reference

C++ win32 异步套接字客户端发送()问题

c++ - 将原始数据类型转换为 void 指针类型

c++ - vector 缓冲区的 vector c++

c++ - c++ vector中对象的指针问题

java - 你曾经在任何项目中使用过 PhantomReference 吗?

mongodb - MongoDB 中的 "Pointers"?