Namespaces
Variants
Views
Actions

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) [edit]
returns range of elements matching a specific key
(public member function) [edit]


[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["first"]=  11;
    my_map["second"]= 23;
 
    mapT::iterator  it= my_map.find("first");
    if( it != my_map.end() ) std::cout << "A: " << it->second << "\n";
 
    it= my_map.find("third");
    if( it != my_map.end() ) std::cout << "B: " << it->second << "\n";
 
    // Accessing a non-existing element creates it
    if( my_map["third"] == 42 ) std::cout << "Oha!\n";
 
    it= my_map.find("third");
    if( it != my_map.end() ) std::cout << "C: " << it->second << "\n";
 
    return 0;
}

Output:

A: 11
C: 0