为了账号安全,请及时绑定邮箱和手机立即绑定

请问 C++ map 的 lower_bound()函数怎么用?

请问 C++ map 的 lower_bound()函数怎么用?

回首忆惘然 2019-03-06 11:07:41
请问 C++ map 的 lower_bound()函数怎么用?
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

我们知道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的第一个元素



查看完整回答
反对 回复 2019-03-20
?
FFIVE

TA贡献1797条经验 获得超6个赞

1234iterator lower_bound(const key_type& _Keyval)    {   // find leftmost node not less than _Keyval in mutable tree    return (iterator(_Lbound(_Keyval), this));    }



查看完整回答
反对 回复 2019-03-20
  • 2 回答
  • 0 关注
  • 2397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信