std::map::find

From cppreference.com

iterator find( const Key& key );
const_iterator find( const Key& key ) const;

Finds an element with key key.

Contents

[edit] Parameters

key - key value of the element to search for

[edit] Return value

Iterator to an element with key key. If no such element is found, past-the-end (see end()) iterator is returned.

[edit] Complexity

Logarithmic in the size of the container.

[edit] See also

returns the number of elements matching specific key
(public member function)
returns range of elements matching a specific key
(public member function)


[edit] Example

Demonstrates the risk of accessing non-existing elements via operator [].

#include <string>
#include <iostream>
#include <map>
 
int main()
{
    typedef std::map<std::string,int>  mapT;
 
    mapT my_map;
    my_map["x"]=  11;
    my_map["y"]= 23;
 
    mapT::iterator  it= my_map.find("x");
    if( it != my_map.end() ) std::cout << "A: " << it->second << "\n";
 
    it= my_map.find("z");
    if( it != my_map.end() ) std::cout << "B: " << it->second << "\n";
 
    // Accessing a non-existing element creates it
    if( my_map["z"] == 42 ) std::cout << "Oha!\n";
 
    it= my_map.find("z");
    if( it != my_map.end() ) std::cout << "C: " << it->second << "\n";
 
    return 0;
}

Output:

A: 11
C: 0