有没有办法在一行中填充矢量地图

Posted

技术标签:

【中文标题】有没有办法在一行中填充矢量地图【英文标题】:Is there a way to fill a map of vector in one line 【发布时间】:2020-07-05 07:23:15 【问题描述】:

我正在填充向量图,我想知道是否有办法在一行中完成,而不是创建一个临时变量。我正在这样做:

map<string, vector<AnEnum> > myMap;
AnEnum tempEnum;

vector<AnEnum> tempList; tempList.push_back(tempEnum);
myMap["key"] = tempList;

我试过这样做

myMap["key"] = vector<AnEnum>(tempEnum);

但 Visual 将其标为红色。我在 C++ 中找不到这样做的好方法。我会知道new,但这会为我创建一个指针。这并不重要,但我对 C++ 的好奇心 :)

提前致谢。

【问题讨论】:

【参考方案1】:

使用brace-initialisation(C+11 起)你可以这样做:

myMap["key"] =  AnEnum ;

这将为键 "key" 隐式创建一个包含 1 个 AnEnum 元素的向量。如果需要,您可以通过用逗号分隔更多元素(例如 AnEnum, AnEnum )来拥有更多元素。


如果需要,您还可以一次性使用大括号初始化创建整个地图:
std::map<std::string, std::vector<AnEnum>> mymap = 
         "key1",  AnEnum  ,
         "key2",  AnEnum  
    ;

【讨论】:

【参考方案2】:
std::map<std::string, std::vector<AnEnum>> myMap;
myMap.insert(std::make_pair("key", std::vectorAnEnum));

myMap["key"]= std::vectorAnEnum;

【讨论】:

以上是关于有没有办法在一行中填充矢量地图的主要内容,如果未能解决你的问题,请参考以下文章

arcgis路名标注

iOS:在 MapKit 的 MKOverlay 中使用矢量数据

arcgis如何加载需要矢量化的地图?

如何更新矢量或地图的值

什么叫矢量地图 关于矢量地图介绍

在Clojure中对地图矢量进行排序和排序的更清洁方法?