求大家看看我的c++代码哪里错了?

我的程序如下:

img

它报错的提示是“error: no match for 'operator==' (operand types are 'std::pair<const int, std::__cxx11::basic_string >' and 'int')”
我不知道到底哪出问题了,求佬指点

要写 (*iter).first == val,std::multimap 迭代的时候返回的是 std::pair。

【以下回答由 GPT 生成】

问题原因是在if语句中,你试图将myMap与整数1进行比较,但是std::map类型没有定义operator==来比较一个std::map对象和整数。

解决方案如下:

#include <iostream>
#include <string>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap.insert(std::make_pair(1, "Hello"));

    // 判断map中是否存在key为1的元素
    if (myMap.find(1) != myMap.end()) {
        std::cout << "匹配成功!" << std::endl;
    }

    return 0;
}

在这个解决方案中,我们使用了find()函数来查找map中是否存在key为1的元素。如果find()函数返回的迭代器不等于end(),说明找到了该元素,即匹配成功。

希望这个解决方案对你有帮助。如果还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^