Roc*_*net 1 c++ performance constructor vector placement-new
我有一个MyClass向量,其中MyClass是一个大类.当我做:
vector<MyClass> vec;
vec.push_back(MyClass(a,b,c));
Run Code Online (Sandbox Code Playgroud)
这似乎效率很低,因为创建了一个临时的MyClass,将其复制到向量中,然后进行了破坏.
有没有办法在第一个地方使用placement new直接在vector中创建类?我不能这样做:
vector<MyClass> vec;
vec.resize(1);
new(&vec.data[0]) MyClass(a,b,c);
Run Code Online (Sandbox Code Playgroud)
因为vec.resize(1)调用了MyClass构造函数.是否有某种方法可以调整向量的大小而不调用所有新项的构造函数,或者是否可以在下一个可用位置将MyClass直接构造到向量中?