タイプのマップがありstd::map<std::string, std::vector<MyClass>>
ます。マップは、ベクトルを作成し、GUID をペアとしてマップに配置する方法で塗りつぶされます。次に、関数を呼び出し、挿入したばかりのベクトルをそれに与えて、ベクトルを埋めたいと思います。次のようになります。
{
std::string guid = "aGUID"
std::vector<MyClass> vec_myClass(0);
my_map[guid] = vec_myClass;
std::vector<MyClass>& vec_ref = my_map[guid];
FillVector(vec_ref);
}
FillVector(std::vector<MyClass>& vec) { vec.push_back(...); }
[] 演算子は の項目の参照を返すと思いますmy_map
。これを関数に渡して操作することができますが、この時点でアプリケーションがクラッシュします。関数 FillVector が多くのアイテムをベクターに入れるので、コピー作業を避けたいので、ベクターを最初にマップに入れています (空の場合)。私の間違いはどこですか?関数への参照ごとに参照を渡すのは間違っているのでしょうか? または、これに対する明らかにより良い解決策はありますか?ここでは、ポインターよりも参照を好みます。Thx、そしてすべての最高。