У меня есть объект:
map<A*, string> collection;
Я хотел бы вызвать функцию map :: find, но у меня есть значение ключа const, как в следующем коде, который не компилируется:
const A* a = whatever();
collection.find(a);
Следующий код работает и выполняет эквивалент операции поиска:
const A* a = whatever();
map<A*, string>::iterator iter;
for(iter = collection.begin(); iter != collection.end(); ++iter)
if(iter->first == a)
break;
// iter now contains the result or map::end (just like map::find)
Но, вероятно, он не так эффективен, как функция-член find, а также уродлив и маскирует цель кода.
] Как я могу вызвать функцию поиска?
Спасибо
Редактировать:
Я намеренно использую указатель для ключа на карте. Я хочу, чтобы карта использовала равенство указателей для ключей. (Как и в моем коде цикла)