gpt4 book ai didi

c++ - STL upper_bound 定义不一致?

转载 作者:太空宇宙 更新时间:2023-11-04 14:45:40 25 4
gpt4 key购买 nike

documentation for upper_bound状态:

...it attempts to find the element value in an ordered range [first, last)... upper_bound returns the furthermost iterator i in [first, last) such that, for every iterator j in [first, i), value < *j is false.

但是,如果我们有一个 vector<int> v包含数字 1、2 和 3,调用 upper_bound(v.begin(), v.end(), 5)将返回 v.end() .但是根据定义,v.end()不在 [v.begin, v.end()) 范围内.定义中没有符合要求的迭代器。该定义是否只是懒惰而没有明确说明在这种情况下会发生什么?

最佳答案

SGI 文档不相关——C++ 标准 是您应该阅读的内容。引用 C++11 §25.4.3.2:

Returns: The furthermost iterator i in the range [first,last] such that for any iterator j in the range [first,i) the following corresponding conditions hold: !(value < *j) or comp(value, *j) == false.

关于c++ - STL upper_bound 定义不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com