当使用std::vectors,std::lists(或其他STL容器)时,我碰巧经常写这个,因为代码短缺(而不是vec[index]每次都显式)和内存分配效率(避免复制/移动),我想我不是只有一个这样做:
std::vector<A> vec;
vec.emplace_back();
A &element = vec[vec.size()-1];
element.prop = "value";
Run Code Online (Sandbox Code Playgroud)
为什么不STL容器emplace,emplace_back而emplace_front方法返回一个T&?这将允许一个人简单地写这个而不是使用阴影vec.size()-1:
std::vector<A> vec;
A &element = vec.emplace_back();
element.prop = "value";
Run Code Online (Sandbox Code Playgroud)