【发布时间】:2020-06-05 05:46:44
【问题描述】:
std::vector::push_back 有两个声明。我在某种程度上理解 rvalue 和 lvalue。据我所知,几乎所有类型(T&、T&&、T)都可以转换为const T&,那么当不同类型的对象传递给std::vector::push时编译器会选择哪一个呢?
我是 C++ 的新手。虽然我想了一遍又一遍,但我仍然无法理解。如果你能给我一些简单的例子来说明清楚就更好了。我会很高兴能得到一些帮助带着这个问题。
根据文档(http://www.cplusplus.com/reference/vector/vector/push_back/),它说:
void push_back(const value_type& val);
void push_back(value_type&& val);
在向量的末尾添加一个新元素,在其当前元素之后 最后一个元素。 val 的内容被复制(或移动)到新的 元素。
【问题讨论】: