标准中

时间:2019-04-24 06:14:41

标签: c++ c++-standard-library

标准中至少有三个具有相似含义的术语:相同相等等效。当描述算法时使用所有这些。说std::adjacent_find

  

在范围[first, last)中搜索两个连续的相同元素。

但是对比较器的描述是:

  

二元谓词,如果元素应被视为相等,则返回``true''

在涉及关联容器时,使用词 equivalent 。对于两个元素ab,它的含义(大致)为!(a < b) && !(b < a)。而等于表示a == b

相同一词是什么意思?是在标准中定义的吗?

1 个答案:

答案 0 :(得分:5)

我在标准的相关部分中找不到“相同”的定义。看起来像这个单词的口语化用法。您的报价来自cppreference进一步支持了这一点。标准中adjacent_find的标准定义为specified in terms of == (or a predicate) directly

  

返回:第一个迭代器i使得ii + 1都在以下条件对应的[first,last)范围内   保持:*i == *(i + 1)pred(*i, *(i + 1)) != false。如果否则返回最后一个   找到了这样的迭代器。

尽管cppreference是非常宝贵的资源,但它的目标是将标准文本消化成易于访问且易于理解的材料。有时,它会以口语形式使用单词进行直观说明。就是这种情况。