upper_bound状态的文档:
...它试图在有序范围内找到元素值[first,last] ... upper_bound返回[first,last]中最远的迭代器i,这样,对于[first,i)中的每个迭代器j,value <*j是假的.
但是,如果我们有一个vector<int> v包含数字1,2和3,upper_bound(v.begin(), v.end(), 5)则会返回调用v.end().但基于定义,v.end()不在范围内[v.begin, v.end()).没有这样的迭代器符合定义中的要求.这个定义是否只是懒惰而没有明确说明在这种情况下会发生什么?
ild*_*arn 11
SGI文档不相关 - 您应该阅读C++标准.引用C++11§25.4.3.2:
返回:
i范围中的最远迭代器,[first,last]以便对于范围中的任何迭代器j,[first,i)以下相应条件成立:!(value < *j)或comp(value, *j) == false.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |