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
答案 0 :(得分:6)
要查找具有特定键的元素,请使用成员find
函数(而不是std::find
算法):
map<int, Doctor>::iterator iter = hospitalInner->doctors.find(5);
您可以使用std::find
实现此目的,但您必须编写一个自定义比较器,用于检查地图中每个first
的{{1}}成员(std::pair
个商店它的键和值为std::map
s)。