我有点困惑有关之间的差异push_back和emplace_back.
void emplace_back(Type&& _Val);
void push_back(const Type& _Val);
void push_back(Type&& _Val);
Run Code Online (Sandbox Code Playgroud)
因为有一个push_back超载采用右值参考我不太明白目的是emplace_back什么?
我正在为我的vector成员变量预先分配一些内存.下面的代码是最小的部分
class A {
vector<string> t_Names;
public:
A () : t_Names(1000) {}
};
Run Code Online (Sandbox Code Playgroud)
现在在某个时间点,如果t_Names.size()等于1000.我打算增加规模100.然后如果它到达1100,再增加100等等.
我的问题是,在vector::resize()和之间做出选择vector::reserve().在这种情况下还有更好的选择吗?
编辑:我有一些精确的估计t_Names.我估计它要700到了800.然而,在某些(很少)情况下,它可以增长超过1000.