map的查找
#include <iostream> using namespace std; #include <map> #include <string> int main() { map<int,string> map1; //map元素的添加方法1 map1.insert(pair<int,string>(1,"teacher01")); map1.insert(pair<int,string>(2,"teacher02")); //map元素的添加方法2 map1.insert(make_pair(3,"teacher03")); map1.insert(make_pair(4,"teacher04")); //map元素的添加方法3 map1.insert(map<int,string>::value_type(5,"teacher05")); map1.insert(map<int,string>::value_type(6,"teacher06")); //map元素的添加方法4 map1[7]="teacher07"; map1[8]="teacher08"; //map遍历 for(map<int,string>::iterator it=map1.begin();it!=map1.end();it++) { cout<<it->first<<"\t"<<it->second<<endl; } cout<<"-----遍历结束-----"<<endl; //map的查找//异常处理 map<int,string>::iterator it2=map1.find(100); if(it2==map1.end()) { cout<<"Key100的值不存在"<<endl; } else { cout<<it2->first<<"\t"<<it2->second<<endl; } //equal_range pair<map<int,string>::iterator,map<int,string>::iterator> mypair =map1.equal_range(5);//返回两个迭代器,形成一个pair //使用第一个迭代器是mypair.first;使用第二个迭代器是mypair.second //第一个迭代器是大于等于5的位置;第二个迭代器是等于5的位置 if(mypair.first==map1.end()) { cout<<"第一个迭代器>=5的位置不存在"<<endl; } else { cout<<mypair.first->first<<"\t"<<mypair.first->second<<endl;//second是第一个迭代器的string } //使用第二个迭代器 if(mypair.second==map1.end()) { cout<<"第二个迭代器>5的位置不存在"<<endl; } else { cout<<mypair.second->first<<"\t"<<mypair.second->second<<endl;//second是第一个迭代器的string } system("pause"); return 0; }