我正在尝试:
std::find(images_map.begin(), images_map.end(), current_rgb));
其中:
QRgb current_rgb;
QMap<QRgb, MI*> images_map;
但我明白了:
error: no matching function for call to 'find(QMap<unsigned int, MI*>::iterator, QMap<unsigned int, MI*>::iterator, QRgb&)
答案 0 :(得分:9)
原因是因为find
期望容器的value_type
与传递给find
的搜索类型相同。你只传递了密钥,而不是密钥和值。
相反,在容器本身上使用find
方法(它也具有对数而不是线性时间复杂度的优势)。
答案 1 :(得分:3)
请改用QMap::find()
方法。