本文主要是验证,容器搜索算法的使用:lower_bound, uper_bound
验证项目:
1. 当 key > begin 时 lower_bound, uper_bound 取值
2. 当 key < end 时 lower_bound, uper_boudn 取值
3. 当 key = 容器中的某值(不等于bigin,也不等于end) 时 lower_bound, uper_boudn 取值
4. 当 key 在 不等于容器中任何一Key, 但是在key 的返回 ower_bound, uper_boudn 取值
5. 当 key 等于 bigin, 当 key 等于 end 时 的取值
测试代码:
[cpp]
#include "stdafx.h"
#include
打印输出:
iterLowerBound10 = end
iterUperBound10 = end
iterLowerBound1 = begin
iterUperBound1 = begin
lower_bound(5) = 7
lower_bound(5) = 7
lower_bound(7) = 7
lower_bound(7) = 8
lower_bound(0) = 3
lower_bound(0) = 3
lower_bound(8) = 8
lower_bound(8) = end8
结论:
当参数 key 没有在 容器 key的范围内:
1. 小于容器key uper_bound, lower_bound 都将返回 begin.
2. 大于容器key uper_bound, lower_bound 都将返回 end
当参数key 在容器key 范围内:
1. 参数 key == 容器key. lower_bound 将返回当前key 的iterator, uper_bound 将返回下一个元素的iterator.
2. 参数 key 不等于 容器key,且在范围内, loer_bound将返回 比参数key 大的且相邻的容器key的iterator
3 如果 Key等于 begin 或等于 end,将返回begin 或end
摘自 DriverMonkey的专栏