QMap的upperBound和lowerBound函数
upperBound
upperBound的作用是返回第一个比传入的key大的元素的迭代器。例:
容器中key按从小到大排列为1、4、5、7、8。 upperBound传入的参数是7,第一个比7大的key就是8.所以结果就是:
如果传入的参数是8,该容器中没有比8更大的key了,返回结果就是end()。
如果传入的参数不是容器中存在的key,也是返回第一个比这个key更大的元素。假如传入2:
lowerBound
从名字上看lowerBound和upperBound刚好相反,按照这种思路应该返回第一个比参数小的key的元素。然而事实上返回的确是第一个是key的元素。例如传入参数是4:
结果返回的是4而不是1。
如果传入的key在容器中不存在,那么返回的是第一个比key大的元素,这个竟然和upperBound是一样的(真是坑)。例如传入的参数是2:
结果不是1而是4: