[英]OOP iterator and find method not working correctly
Doctor Hospital::findDoctor(const Doctor &doctor) {
map<int, Doctor>::iterator iter = find(hospitalInner->doctors.begin(), hospitalInner->doctors.end(), 5);
}
嗨,我在使用此確切方法時遇到了問題。 也許有人知道問題出在哪里? (我正在添加當前錯誤。)
錯誤C2678:二進制'==':未找到采用類型為'std :: pair'的左側操作數(或沒有可接受的轉換)的運算符C:\\ Program Files(x86)\\ Microsoft Visual Studio 12.0 \\ VC \\ include \\ xutility 3026 1醫院5
要查找具有特定鍵的元素,請使用成員find
功能(而不是std::find
算法):
map<int, Doctor>::iterator iter = hospitalInner->doctors.find(5);
您可以使用std::find
實現此目的,但您必須編寫一個自定義比較器,以檢查映射中每個std::pair
的first
成員( std::map
將其鍵和值存儲為std::pair
s )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.