Я часто вижу код вроде:
if(myQMap.contains("my key")){
myValue = myQMap["my key"];
}
который теоретически выполняет два поиска в QMap.
Моя первая реакция заключается в том, что она должна быть заменена следующей, которая выполняет только один поиск и должна быть в два раза быстрее:
auto it = myQMap.find("my key");
if(it != myQMap.end()){
myValue = it.value();
}
Мне интересно, автоматически ли QMap делает эту оптимизацию для меня? Другими словами, мне интересно, сохраняет ли QMap позицию последнего элемента, найденного с помощью QMap:: contains(), и сначала проверяет его перед выполнением следующего поиска?
Спасибо!