c++ - 当键是一对时在 map 中使用 .find() 函数

标签 c++ dictionary std-pair

我在我的 map 中使用一对字符串作为键,并使用一个 int 作为值。我想搜索 map ,如果确切的对已经存在,则增加值,否则将对插入 map (值为 1)。它编译,但是,它实际上并没有找到已经存在的对,它只是插入。 (输出仅用于测试目的)。我认为问题在于将 .find() 与 pair 一起使用,但不确定如何解决此问题...

最佳答案

您显示的代码似乎是正确的。你能用一个完整的例子来演示吗,包括 main

此外,我认为您可以摆脱 operator[] :

++pairs[std::make_pair(*slow, *fast)];

然而,真正的问题可能是您所期望的pairs成为一个“out”参数,而你正在按值传递它。您的功能实际上只是修改容器的拷贝。您想改为引用它。 map<pair<string, string>, int> findPairs(map<pair<std::string,std::string>, int>& pairs, multiset<string> artists){ (注意 & 参数之前的 pairs)。

关于c++ - 当键是一对时在 map 中使用 .find() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264421/

相关文章:

Python:跟踪字典中特定值的最佳方式

c# - 如何使用给定名称 List<string> 初始化多个 List<string>

c++ - 如何合并两个不同大小的 vector 对

c++ - 如何从新插入的对(到 map )返回引用对?

C++ std::transform vector of pairs->first to new vector

c++ - 在 Selene 中包装一个枚举以便在 Lua 中访问

c++ - 相等字符串(数组的字符串和字符串)-c++

c++ - 重载否定运算符的反义词?

c++ - 处理跨平台的二进制依赖关系

python - 如何使用列表作为 python 字典中的键