c++ - 如何修改unordered_map中的值?

标签 c++ visual-c++ c++11

我想尝试使用键 k 和值 v 将元素插入到映射中。如果键已经存在,我想增加该键的值。

例子,

typedef std::unordered_map<std::string,int> MYMAP;

MYMAP mymap;
std::pair<MYMAP::iterator, bool> pa=  
    mymap.insert(MYMAP::value_type("a", 1));
if (!pa.second)
{
    pa.first->second++;
} 

这是行不通的。我该怎么做?

最佳答案

您不需要迭代器来实现这个目标。因为您的 vV() + 1,所以您可以简单地增加而无需知道键是否已经存在于映射中。

mymap["a"]++;

这在您给出的示例中会很好。

关于c++ - 如何修改unordered_map中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900247/

相关文章:

c++ - 如何在某些头文件(嵌套类)的 cpp 文件中包含我的实现

c++ - forward_list::splice_after( const_iterator pos, forward_list& other, const_iterator i ) 功能

c++ - 为什么 STL 的 next_permutation 实现不使用二分查找?

c++ - 参数规范中的对象

C++11 文件系统 (VS2012)

c++ - 为什么初始化构造函数列表参数会出现异常?

C++11 访问具有限定名称的无作用域枚举数

c++ - GLEW:Apple Mach-O 链接器 (Id) 错误

c++ - 如何访问 native IDataObject

debugging - 为什么 printf() 会阻止崩溃的发生?