如何修改multimap中的值
how to modify a value in multimap?
我的问题是我已经制作了多映射。这是部分代码。
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;
}
相关文章:
- 使用std::multimap迭代器创建std::list
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 如何从子成员函数修改父公共成员变量
- 修改 VS Code 中的默认C++代码段
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 如何使用递归打印修改后的星号三角形图案
- 已修改的LinkedList未在文本文件本身中更新
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 为什么可以修改数组 b?
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 如何修改multimap中的值