翻过高山走不出你
我们知道map容器是根据键值进行排序的lower_bound(k)返回一个迭代器,指向键不小于k的第一个元素upper_bound(k)返回一个迭代器,指向键大于k的第一个元素这两个函数常用于multimap容器,用来获取某个键对应的所有元素给你个程序:12345678910111213141516171819202122232425#pragma warning (disable:4786)#include<iostream>#include<string>#include<map>using namespace std;int main(){ multimap<string,int> m; m.insert(make_pair((string)"China",1)); m.insert(make_pair((string)"China",2)); m.insert(make_pair((string)"China",3)); m.insert(make_pair((string)"English",1)); m.insert(make_pair((string)"English",2)); multimap<string,int>::iterator it = m.begin(); while(it != m.end()) { cout<<it->first<<" "<<it->second<<endl; it++; } cout<<endl; multimap<string,int>::iterator it1 = m.lower_bound("China"),it2 = m.upper_bound("China"); cout<<it1->first<<" "<<it1->second<<endl; cout<<it2->first<<" "<<it2->second<<endl; return 0;}晓得了么,lower_bound(k)得到的迭代器,就是指向第一个键k对应的第一个元素upper_bound(k)得到的迭代器,就是指向大于键k的第一个元素