OOP迭代器和查找方法无法正常工作

时间:2014-12-11 16:26:22

标签: c++ oop map find

Doctor Hospital::findDoctor(const Doctor &doctor) {
    map<int, Doctor>::iterator iter = find(hospitalInner->doctors.begin(), hospitalInner->doctors.end(), 5);
}

Hy,我对这个确切的方法有一些问题。也许有人知道问题出在哪里? (我正在添加当前错误。)

错误C2678:二进制&#39; ==&#39; :找不到哪个运算符采用类型为&#39; std :: pair&#39;的左手操作数(或者没有可接受的转换)C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include \ xutility 3026 1 hospital5

1 个答案:

答案 0 :(得分:6)

要查找具有特定键的元素,请使用成员find函数(而不是std::find算法):

map<int, Doctor>::iterator iter = hospitalInner->doctors.find(5);

您可以使用std::find实现此目的,但您必须编写一个自定义比较器,用于检查地图中每个first的{​​{1}}成员(std::pair个商店它的键和值为std::map s)。

相关问题