如何修改multimap中的值

how to modify a value in multimap?

本文关键字:multimap 修改 何修改      更新时间:2023-10-16

我的问题是我已经制作了多映射。这是部分代码。

        if(binary_search(final.begin() , final.end() , answer ) )
            {
            final[answer] =    
            }
            else
            {
                final.insert(pair<string,int>(answer , 1 ) );
            }

这里的答案是一个字符串,最后一个是<string,int>的多映射。现在我想要的是,如果字符串答案存在,那么增加(修改)int的值。我该怎么做?如果字符串元素已经存在,我想将int的值增加一?

谨致问候。

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

如果密钥是唯一的,则使用std::map

如果您需要多映射(即需要多个具有相同密钥的条目),请使用?std::lower_bound:

multimap::iterator it = mmap.lower_bound(key);
while (it != mmap.end() && it->first == key)
{
   // *it is a key-value pair, where you can modify the value
   it->second.Modify();
   ++it;
}