2017-02-13 8 views
0

std :: vectorの中にオブジェクトを作成して、それを作成してからpush_back()することを避けたい。 私は(emplace_backについて聞いた)が、私はこのような状況でそれを使用することができませんでした: 別のオブジェクトに含まれているベクトルの中にオブジェクトを作成する

std::vector<std::vector<std::string>> info; 

その後、誰もが最初の最後の位置に第二のベクターと、このベクトルの中の文字列情報を作成する方法を知っています?これまでしかしinfo2にと一back()を使用しない類似のもの:あなたがかもしれないので、しかし、ベクトルのベクトルを扱うこの

info.emplace_back(std::vector<string>{"a"}); 

よう

std::vector<std::string> info2; 
info2.emplace_back("a"); 
info.push_back(info2); 
+3

これらの「2次元ベクトル」を避け、問題が解消されることをお勧めします。 'std :: map >'(内側の次元が固定されていない場合)または 'std :: vector 'を保持し、その周囲に座標変換をレイアウトします(内部次元固定されています)。それで、あなたは不必要なオブジェクトの作成をしません。これはまさにあなたがここに近づいている問題です! –

答えて

1

することができますemplace_back全体のベクトルは、面倒です軌道のLightness Racesが示唆するように、あなたのデザインを再考してください。

関連する問題