1.用于迭代/遍历一个容器的接口,可以理解为一个超级指针
2、迭代器的用法:
(1)定义:容器类型::iterator 迭代器名
(2)遍历迭代器:所有支持迭代器的容器都会提供begin()和end()方法分别指向容器的头部和尾部
注意:end()指向容器最后一个元素的下一个位置,这个位置不存在有
意义的值。
迭代器的类型需要与容器定义的类型完全保持一致
map<int,string>::iterator it;
for(it = mp.begin(); it != mp.end(); it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
```
3.map的成员函数
my_map.find(x);//查找关键字为x的元素,返回值是一个迭代器,没找到返回my_map. end()
my_map.count(x);//查找关键字为x的元素个数,返回值是无符号整型,找到返回1
my_map.erase(it);//删除 迭代器it 指向的元素,返回值为指向下一个元素的迭代器
my_map.clear();//清空
my_map.begin();//返回指向map头部的迭代器
my_map.end();//返回指向map末尾的迭代器
my_map.rbegin();//返回一个指向map尾部的逆向迭代器
my_map.rend();//返回一个指向map头部的逆向迭代器
my_map.empty();//map为空时返回true
my_map.size()//map的长度大小
map<int,string> :: reverse_iterator rit;//逆问迭代器的使用
for(it=mp.begin() ;it != mp.end() ;it++)
{
cout << it->first << " " << it->second << endl;
}
map<int, string>
pair<int, string> p;
p. first=2001, p. second="xiaoming";
mp. insert (p) ;
mp[2002]="xiaohong"
mp. insert (make_pair(2000, "xiaole")) ;
mp. insert (pair<int, string>(2005, "xiaofang")) ;
map<int, string> :: iterator it;
it=mp.find(2001) ;
cout << it->first << " " << it->second << end1;
cout << mp. count(2000) << end1 ;
for(it=mp. begin() ;it != mp.end() ;it++)
{
cout << it->first << " " << it->second << endl;
}