鉴于此定义:
vector<some_struct_t> lots_of_stuff;
Run Code Online (Sandbox Code Playgroud)
而且vector::at返回引用的事实,这段代码对我有意义:
some_struct_t & ref_element = lots_of_stuff.at(0);
Run Code Online (Sandbox Code Playgroud)
但是,这段代码也可以编译并且似乎有效:
some_struct_t val_element = lots_of_stuff.at(0);
Run Code Online (Sandbox Code Playgroud)
如何在这里进行非参考工作?是否正在调用复制构造函数?为什么这样做?