QMap的upperBound和lowerBound函数

upperBound

upperBound的作用是返回第一个比传入的key大的元素的迭代器。例:

image.png

容器中key按从小到大排列为1、4、5、7、8。  upperBound传入的参数是7,第一个比7大的key就是8.所以结果就是:

image.png

如果传入的参数是8,该容器中没有比8更大的key了,返回结果就是end()。

如果传入的参数不是容器中存在的key,也是返回第一个比这个key更大的元素。假如传入2:

image.png

image.png


lowerBound

从名字上看lowerBound和upperBound刚好相反,按照这种思路应该返回第一个比参数小的key的元素。然而事实上返回的确是第一个是key的元素。例如传入参数是4:

image.png

结果返回的是4而不是1。

image.png


如果传入的key在容器中不存在,那么返回的是第一个比key大的元素,这个竟然和upperBound是一样的(真是坑)。例如传入的参数是2:

image.png

结果不是1而是4:

image.png





演示站
上一篇:Qt如何获取屏幕分辨率?
下一篇:QStringList的join函数和QString的split函数

发表评论