Std :: Map Find/End beide bietet Const_iterator und Iterator, z.m.find (...) == m.end() - was verwendet wird, Iterator oder Const_iterator
iterator end();
const_iterator end() const
Aus Neugier, wenn ich eine std :: Karte haben, die aufgerufen wird/verglichen hier einen Iterator oder eine const_iterator? :
if(m.find(key) != m.end()) {
...
}
Und sollte mich das interessieren?
Es spielt eine Rolle, wenn Sie Ihren eigenen Algorithmus schreiben. Dann sollten Sie angeben, ob Ihr Algorithmus ein modifizierender Algorithmus ist. Wenn nicht, dann heißt es, es funktioniert mit 'const_iterator'. Es ist auch eine gute Idee zu wissen, welche Algorithmen Sie ändern und welche nicht: Wenn Sie einen Fehler bekommen, können Sie sagen, dass es so ist, weil Sie ein 'const_iteratr' (vielleicht weil es von einem' const' Objekt kommt) an ein modifizierender Algorithmus. – wilhelmtell