C++ 传递 STL 容器项作为引用

标签 c++ dictionary reference

我有一个 std::map<std::string, std::vector<MyClass>> 类型的 map . map 以这种方式填充,我创建了一个 vector 并将其与 guid 作为一对放入 map 中。然后我想调用一个函数,把刚刚插入的 vector 给它,让它填充 vector 。看起来像这样:

{
    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 中项目的引用,我可以将其赋予一个函数来使用它,但此时我的应用程序崩溃了。我首先将 vector 放入 map (当它为空时),因为我想避免复制工作,因为函数 FillVector 将大量项目放入 vector 中。我的错误在哪里?通过引用传递函数的引用可能是错误的吗?或者对此有明显更好的解决方案吗?在这里我更喜欢引用而不是指针。谢谢,祝一切顺利。

最佳答案

所有代码都简化为:

{
    std::string guid = "aGUID"
    FillVector(my_map[guid]);    
}

顺便说一句。我认为您的问题似乎不在这里,但在代码中您没有向我们展示...

关于C++ 传递 STL 容器项作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761595/

相关文章:

c++ - boost spirit V2 Qi 语法线程安全吗?

rust - 为什么不能在同一结构中存储值和对该值的引用?

arrays - 如何在 RxSwift 中使可变字典变得可观察

python - 在 python 中实现 T9 字典时输出错误

C#,MySQL 对象引用未设置为对象实例错误

c++ - 为什么 const 引用可以指向常量而普通引用不能

c++ - 尝试将文件写入数组时运算符 << 出错

c++ - 传递对成员函数的引用

持有指针的对象的c++ vector

python - 用键打印字典中的最高值