Нет подходящей функции для вызова Std :: find? - PullRequest
3 голосов
/ 13 июля 2011

Я пытаюсь сделать:

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&)

Ответы [ 2 ]

9 голосов
/ 13 июля 2011

Причина в том, что find ожидает, что value_type контейнера будет таким же, как тип поиска, переданный в find.Вы передали только ключ, а не ключ и значение.

Вместо этого используйте метод find в самом контейнере (который также имеет преимущество в том, что он логарифмический, а не линейная сложность времени).

3 голосов
/ 13 июля 2011

Вместо этого используйте метод QMap::find().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...