#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1 = {0, 1, 5, 3, 2, 1, 4, 7, 6};
vector<int>::iterator up;
up = upper_bound(v1.begin(), v1.end(), 3);
cout << *up << endl;
vector<int> v2 = {0, 1, 5, 3, 2, 1, 4, 7, 6};
vector<int>::iterator lo;
lo = lower_bound(v2.begin(), v2.end(), 3);
cout << *lo << endl;
return 0;
}
为什么上面的代码输出的结果是:
4
4
这不没有区别吗?
C++Primer上写到:
lower_bound返回一个迭代器,表示第一个小于等于val的元素
upper_bound返回一个迭代器,表示第一个大于val的元素
可是上面代码输出的结果完全不是这回事啊???