簡體   English   中英

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

[英]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::pairfirst成員( std::map將其鍵和值存儲為std::pair s )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM