我在我的 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/