小编Iva*_*anp的帖子

没有运算符"=="匹配这些操作数

所以我尝试比较我从它得到的迭代器值 - >第二个用int来从值的基础上从map获取键.我有这个代码:

std::map<string, std::vector<int> >::const_iterator it;
void getStudentByGrade(int gradeComp)
{
    for (it = studMap.begin(); it != studMap.end(); it++)
    {
        if (it->second == gradeComp)
        {
            cout << it->first;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并在if语句中我得到错误,但我比较两个整数不是吗?作为gradeComp传递的int和it-> second.

错误是:

严重级代码描述项目文件行抑制状态错误C2678二进制'==':找不到运算符,它接受类型为'const std :: vector>'的左操作数(或者没有可接受的转换)

如何解决错误?我找到了仅使用迭代器获取key值的示例.

c++

2
推荐指数
1
解决办法
71
查看次数

标签 统计

c++ ×1