我有一个 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/