【发布时间】:2019-09-18 09:55:52
【问题描述】:
我有一个将字符串映射到字符串向量的映射:
std::unordered_map<std::string, std::vector<std::string>>> myMap;.
有没有很好的方法(代码尽可能少,同时仍然可读)将值附加到给定键的向量?
对于向量尚未初始化的新键,如何处理向向量添加值的情况?
【问题讨论】:
-
myMap[key].push_back(value)? -
@Someprogrammerdude operator[] 是否处理 key 不在 map 中的情况?
-
如果键不存在,
operator[]函数会创建一个默认构造函数或初始化值,因此对于您的向量,它将创建一个空向量。这应该在很多地方都有详细记录。 -
这意味着,另一方面,如果您不想想要插入不存在的元素(并且您不能在 const 上使用它),则不能使用
operator[]地图)。在这种情况下,您将依赖find函数。
标签: c++ c++11 dictionary