我经常看到这样的代码:
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()
并在执行下一次查找之前先检查它?