/*
* Map operations
*
*/
template <class Key, class T, class Cmp = less<Key>,
class A = allocator< pair<const Key,T> > >
class map {
public:
// ...
// map operations:
iterator find(const key_type& k); // find element with key k
const_iterator find(const key_type& k) const;
size_type count(const key_type& k) const; // find number of elements with key k
iterator lower_bound(const key_type& k); // find first element with key k
const_iterator lower_bound(const key_type& k) const;
iterator upper_bound(const key_type& k); // find first element with key greater than k
const_iterator upper_bound(const key_type& k) const;
pair<iterator,iterator> equal_range(const key_type& k);
pair<const_iterator,const_iterator> equal_range(const key_type& k) const;
// ...
};
/*
* Usage
*
*/
void f(map<string,int>& m)
{
map<string,int>::iterator p = m.find("Gold");
if (p!=m.end()) { // if "Gold" was found
// ...
}
else if (m.find("Silver")!=m.end()) { // look for "Silver"
// ...
}
// ...
}
void f(multimap<string,int>& m)
{
multimap<string,int>::iterator lb = m.lower_bound("Gold");
multimap<string,int>::iterator ub = m.upper_bound("Gold");
for (multimap<string,int>::iterator p = lb; p!=ub; ++p) {
// ...
}
}