C++ STL上界定义不一致?

C++ STL上界定义不一致?,c++,stl,C++,Stl,各国: …它尝试在有序范围[first,last]中查找元素值。上界返回[first,last]中最远的迭代器i,因此,对于[first,i]中的每个迭代器j,值 SGI文档是不相关的。C++标准是你应该阅读的。引用C++ 11×25.4.3.2: 返回:范围[first,last]中最远的迭代器i,这样对于范围[first,i)中的任何迭代器j,以下相应条件保持不变:!(value

各国:

…它尝试在有序范围[first,last]中查找元素值。上界返回[first,last]中最远的迭代器i,因此,对于[first,i]中的每个迭代器j,值<*j为false


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

< P> SGI文档是不相关的。C++标准是你应该阅读的。引用C++ 11×25.4.3.2:

返回:范围
[first,last]
中最远的迭代器
i
,这样对于范围
[first,i)
中的任何迭代器
j
,以下相应条件保持不变:
!(valuecomp(value,*j)=false


PICHMAH:公平的观点,但我从来没有看到任何人真正意味着SGI STL,所以我假设OP是标准库算法。我的问题是在SGI STL中的措辞,但是我现在的困惑已经消除了,我看到C++标准是明确的。你还不够大;)