find()
find()原型:
iterator find (const key_type& k);
const_iterator find (const key_type& k) const;
需要通过iterator来查找:
#include <map>
#include <stdio.h>
#include <algorithm>
int main ()
{
std::map<char,int> mymap;
std::map<char,int>::iterator it;
mymap['a']=50;
mymap['b']=100;
mymap['c']=150;
mymap['d']=200;
it = mymap.find('b');
if (it != mymap.end())
printf("%d\n",it->second);
system("pause");
return 0;
}
输出:
100
erase()
删除map中的键值–>map的大小也会减少!
c++11中的特性:
(1) iterator erase (const_iterator position);
(2) size_type erase (const key_type& k);
(3) iterator erase (const_iterator first, const_iterator last);
erase()中的参数可以是iterator、键值或者一个范围。
引用c++参考手册中的例子:
#include <iostream>
#include <map>
int main ()
{
std::map<char,int> mymap;
std::map<char,int>::iterator it;
// insert some values:
mymap['a']=10;
mymap['b']=20;
mymap['c']=30;
mymap['d']=40;
mymap['e']=50;
mymap['f']=60;
it=mymap.find('b');
mymap.erase (it); // erasing by iterator
mymap.erase ('c'); // erasing by key
it=mymap.find ('e');
mymap.erase ( it, mymap.end() ); // erasing by range
// show content:
for (it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
return 0;
}
输出:
a => 10
d => 40