#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<iterator>
using namespace std;
int main()
{
map<int,string> m;
m[1] = "Steve";
m[2] = "Jobs";
m[3] = "Kobe";
map<int,string>::iterator it;
for(it = m.begin(); it!=m.end(); it++)
cout<<it->first<<" : "<<it->second<<endl;//map用迭代器指向map的first 和 second 成员变量遍历
return 0;
}
map容器的数据结构是采用红黑树实现的,插入元素键值允许重复.
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<iterator>
using namespace std;
int main()
{
map<int,string> m;
m[1] = "Steve"; //虽然我定义顺序是 1 3 2 但是输出却是1 2 3
m[3] = "Jobs";
m[2] = "Kobe";
map<int,string>::iterator it;
map<int,string>::reverse_iterator rit;//声明反向迭代器
for(it = m.begin(); it!=m.end(); it++)
cout<<it->first<<" : "<<it->second<<endl;//map用迭代器指向map的first 和 second 成员变量遍历
for(rit = m.rbegin(); rit!=m.rend(); rit++)
cout<<rit->first<<" : "<<rit->second<<endl;//反向迭代
return 0;
}
结果:
find
语法: iterator find( const KEY_TYPE &key ); |
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<iterator>
using namespace std;
int main()
{
map<int,string> m;
m[25] = "Steve";
m[28] = "Jobs";
m[10] = "dhl";
m[30] = "Kobe";
map<int,string>::iterator it;
it = m.find(28); //find()函数
//cout<<(it = m.find(28))->first<<" : "<<(it = m.find(28))->second<<endl;
if(it != m.end())
cout<<it->first<<" : "<<it->second<<endl;
else cout<<"Not Found!"<<endl;
return 0;
}