首页 > 解决方案 > 如何在c ++中创建结构向量的映射

问题描述

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

        struct Data
        {
         int x;
         int z;
         int y;
        };

在 myMap 中,键是 int,值是结构向量,我不想在插入地图时创建临时向量或结构。有什么想法可以实现吗?

标签: c++structstdvectorstdmap

解决方案


一种方法是使用emplacestd::move

myMap.emplace(key, std::move(myVec));

通过使用std::move,您可以在地图之外构建矢量,然后将该矢量移动到地图中而无需任何复制。


推荐阅读