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

标签 c++ multimap

我的问题是我制作了multimap。这是部分代码。

        if(binary_search(final.begin() , final.end() , answer ) )
            {

            final[answer] =    

            }
            else
            {
                final.insert(pair<string,int>(answer , 1 ) );
            }

这里的 answer 是一个字符串,final 是 <string,int> 的多重映射.现在我想要的是,如果字符串答案存在,则增加(修改)int 的值。我怎样才能做到这一点? 如果字符串元素已经存在,我想将 int 的值递增 1?

问候。

最佳答案

如果您希望键是唯一的,那么使用map。然后你可以简单地做 final[answer]++。请注意,map::operator[] 会将键插入映射(如果它不存在)。该值将在此插入期间默认构造,并返回对该默认构造值的引用。如果键已经存在,则它返回对值元素的引用。

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

相关文章:

java - Guava:将 Multimap 转换为通用父类(super class)型是否有效?

c++ - const QString& 的显式模板特化导致未解析的外部

c++ - 在 C++ 中连接字符串

c++ - boost program_option 不区分大小写的解析

c++ - 一个简单的 png 库,用于基于 c++ win32 图 block 的游戏引擎

Guava :迭代 Multimap 的键-> 集合条目的最佳方法?

java - Java中的多值哈希表

c++ - 如何迭代 map 的 C++ map

Java:切片 Guava 多图

c++ - 命名空间中的 ostream 运算符 << 隐藏了其他 ostream::operator