这是一个非常直截了当的问题.有没有办法有一个向量并初始化一个元素而不构造然后复制它?
class BigType
{
// has a costly copy constructor
};
int main(void)
{
using std::vector;
vector<BigType> bigTypeVec;
bigTypeVec.push_back(BigType(/*constructor from parameters*/));
// This constructs a temp object, and then copies it to the new element.
}
Run Code Online (Sandbox Code Playgroud)
当然有各种各样的工作包括涉及指针的向量,或者不使用构造函数,用set函数初始化元素的组件,但是我想知道是否有办法做到这一点它可以调用它在push_back期间分配的元素上的构造函数.
编辑:这个问题被标记为重复,但我查看了该页面并且他的问题的答案没有回答我的问题.我想知道如何通过构造一次来设置元素的值,而不是将构造临时对象复制到元素中.Emplace是一个很好的方法.