Map operators [C++ Reference]
Keywords: stl,map,map_operators
Date: 2009-10-11T05:23:04-0700

## Map operators

Syntax:

        #include <map>
        mapped_type& operator[]( const key_type& key );
        map& operator=(const map& c2);
        bool operator==(const map& c1, const map& c2);
        bool operator!=(const map& c1, const map& c2);
        bool operator<(const map& c1, const map& c2);
        bool operator>(const map& c1, const map& c2);
        bool operator<=(const map& c1, const map& c2);
        bool operator>=(const map& c1, const map& c2);

Maps can be compared and assigned with the standard comparison operators: ==, !=, <=, >=, <, >, and =. Individual elements of a map can be examined with the [] operator.

Performing a comparison or assigning one map to another takes linear time.

Two maps are equal if:

1. Their size is the same, and
2. Each member in location i in one map is equal to the the member in location i in the other map.

Comparisons among maps are done lexicographically.

For example, the following code defines a map between strings and integers and loads values into the map using the [] operator:

        struct strCmp {
          bool operator()( const char* s1, const char* s2 ) const {
            return strcmp( s1, s2 ) < 0;
          }
        };

        map<const char*, int, strCmp> ages;
        ages["Homer"] = 38;
        ages["Marge"] = 37;
        ages["Lisa"] = 8;
        ages["Maggie"] = 1;
        ages["Bart"] = 11;

        cout << "Bart is " << ages["Bart"] << " years old" << endl;

        cout << "In alphabetical order: " << endl;
        for( map<const char*, int, strCmp>::iterator iter = ages.begin(); iter != ages.end(); ++iter ) {
          cout << (*iter).first << " is " << (*iter).second << " years old" << endl;
        }

When run, the above code displays this output:

        Bart is 11 years old
        In alphabetical order:
        Bart is 11 years old
        Homer is 38 years old
        Lisa is 8 years old
        Maggie is 1 years old
        Marge is 37 years old

Related Topics: insert, Map Constructors & Destructors