c++ - Does std::map support caching? -


for example:

code1:

if((iter = map.find(key)) != map.end()) {     return iter->second; } return 0; 

code2:

if(map.count(key) > 0) {     return map.at(key); } return 0; 

code2 more simpler, both map.count() , map.at() cost o(logn) time. std::map provide feature stores last search item in cache , make searching same item faster, or perform second search in whole map?

it search through whole map, there no caching being done - or @ least, standard not mandate , no implementation it, because all clients of such implementation have pay possibly undesired overhead of updating cached information after each insertion/removal.

the first approach idiomatic way determine whether key/value pair contained in map (just mind fact operator -> should used instead of operator ., since find() iterator, , assignment iter should outside if condition):

auto iter = map.find(key); if (iter != map.end()) {     return iter->second; } 

Comments

Popular posts from this blog

Perl - how to grep a block of text from a file -

delphi - How to remove all the grips on a coolbar if I have several coolbands? -

javascript - Animating array of divs; only the final element is modified -