我有一个 map std::map<int, std::vector<Data>>myMap,我的结构定义如下。

        struct Data
        {
         int x;
         int z;
         int y;
        };
在myMap中,键是int,值是结构的 vector ,我不想在插入 map 时创建临时 vector 或结构。有什么想法可以实现吗?

最佳答案

您无需显式初始化映射中的值。当您通过映射中不存在的 operator[] 访问密钥时,它将添加一个默认的初始化值(在您的情况下为空std::vector)。
这样您就可以安全地执行类似

myMap[0].push_back(myInstanceOfData)
即使键0不存在。然后,它将与一个空 vector 一起创建为值,并将值myInstanceOfData推送到 map 内的该新 vector 。

关于c++ - 如何在C++中创建结构的 vector 图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62749636/

10-11 14:37
查看更多