ベクトルにオブジェクトを追加する正しい方法は何ですか?例えばオブジェクトを作成してベクトルにプッシュする正しい方法は何ですか?
...ベクトルではなく実際のオブジェクトよりも、オブジェクトのコピーを取るようだ:コピーせずに、ベクトル内のオブジェクトを入れるための正しい方法である
class MyClass{
private:
std::vector<Texture>_textures;
public:
void addATexture(int textureWidth,int textureHeight){
Texture tex(textureWidth,textureHeight);
_textures.push_back(tex);//A copy of tex is pushed into in..
} // ---> At this point, tex is destroyed...
}
何? C++ 11には、あなたは高価なオブジェクトのための移動のコンストラクタに利益をもたらすことができます使用
_textures.emplace_back(textureWidth, textureHeight);
コピーに副作用がある場合、それは省略されません。 – Danh