vector<int> v = {5, 2, 8, 1}; // 注意:乱序
auto it = lower_bound(v.begin(), v.end(), 2);
下列说法正确的是( )。
- A. 返回指向 2 的迭代器:lower_bound 找不到合适位置会先把元素插进去
- B. 结果无意义:lower_bound 的前提是区间已按升序排好,乱序区间不报错但结果不可靠
- C. 编译错误:使用 lower_bound 前必须先 sort,否则编译器拒绝编译
- D. 返回 v.end():因为区间没有排过序,函数找不到答案