我有一张类型的地图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(...); }
我认为 [] 运算符返回对 in 项目的引用my_map
,我可以将其提供给使用它的函数,但此时我的应用程序崩溃了。我将向量首先放入地图中(当它为空时),因为我想避免复制工作,因为函数 FillVector 将大量项目放入向量中。我的错误在哪里?通过引用函数来传递引用可能是错误的吗?或者有明显更好的解决方案吗?我更喜欢这里的引用而不是指针。谢谢,一切顺利。