I am inserting elements in a map avoiding duplicates, so I've written this code
std::unordered_map<size_t, size_t> idToPos;
for (it : list) {
auto itPos = idToPos.find(it.id());
if (itPos==idToPos.end()) {
idToPos[itPos->first] = idToPos.size();
do_something_else();
}
}
The question is, if itPos==idToPos.end()
is true, will itPos->second
yield the same result as idToPos[itPos->first]
given idToPos
is an unordered_map
?