【发布时间】:2018-05-14 09:15:16
【问题描述】:
所以我尝试将我从 it->second 获得的迭代器值与 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;
}
}
}
在 if 语句中我得到了错误,但我比较了两个整数,不是吗?作为gradeComp 和it->second 传递的int。
错误是:
严重性代码描述项目文件行抑制状态 错误 C2678 二进制“==”:未找到采用左手的运算符 'const std::vector>' 类型的操作数(或那里 是不可接受的转换)
如何解决错误?我发现了仅使用迭代器获取键值的示例。
【问题讨论】:
-
it->second是一个std::vector<int>, innit。 -
添加到第一条评论,您可能想要更改
std::map<string, int>
标签: c++