标准中至少有三个具有相似含义的术语:相同,相等和等效。当描述算法时使用所有这些。说std::adjacent_find
:
在范围
[first, last)
中搜索两个连续的相同元素。
但是对比较器的描述是:
二元谓词,如果元素应被视为相等,则返回``true''
在涉及关联容器时,使用词 equivalent 。对于两个元素a
和b
,它的含义(大致)为!(a < b) && !(b < a)
。而等于表示a == b
。
相同一词是什么意思?是在标准中定义的吗?
答案 0 :(得分:5)
我在标准的相关部分中找不到“相同”的定义。看起来像这个单词的口语化用法。您的报价来自cppreference进一步支持了这一点。标准中adjacent_find
的标准定义为specified in terms of ==
(or a predicate) directly:
返回:第一个迭代器
i
使得i
和i + 1
都在以下条件对应的[first,last)范围内 保持:*i == *(i + 1)
,pred(*i, *(i + 1)) != false
。如果否则返回最后一个 找到了这样的迭代器。
尽管cppreference是非常宝贵的资源,但它的目标是将标准文本消化成易于访问且易于理解的材料。有时,它会以口语形式使用单词进行直观说明。就是这种情况。