c++ - 标准中术语相同、相等、等价的含义
问题描述
标准中至少有三个具有相似含义的术语:相同、相等和等效。所有这些都在描述算法时使用。说,std::adjacent_find
:
在范围内搜索
[first, last)
两个连续的相同元素。
但是比较器的描述说:
如果元素应该被视为相等,则返回 true 的二元谓词
当涉及到关联容器时,使用了等价词。对于两个元素a
,b
它意味着(大致)!(a < b) && !(b < a)
。而平等意味着a == b
。
术语相同是什么意思?是否在标准中定义?
解决方案
我在标准的相关部分中找不到“相同”的定义。看起来像这个词的口语用法。您的报价来自 cppreference 的事实进一步支持了这一点。adjacent_find
标准中的规范定义
直接用(或谓词)来指定==
:
返回: 第一个迭代器
i
,使得i
和i + 1
都在 [first, last) 范围内,以下相应条件成立:*i == *(i + 1)
,pred(*i, *(i + 1)) != false
. 如果没有找到这样的迭代器,则返回 last。
虽然 cppreference 是一种宝贵的资源,但它的目标是将标准文本消化成易于访问和理解的材料。有时,它会使用口语化的词语进行直观的解释。这是一个这样的案例。
推荐阅读
- node.js - nodejs中swagger-jsdoc设置的语法错误
- python - python ProcessPoolExecutor在函数中不起作用
- c# - 两个日期之间的计数(C#,CultureInfo)
- pandas - 在熊猫数据框中的一组内除以最大值
- sql-server - 子字符串在我的所有情况下都不起作用,我该如何解决?
- angular - 从 json 加载远程数据
- ionic-framework - 无法通过 JSON 检索 WP 帖子功能图像 url
- mongodb - $gt 内的三元运算符
- javascript - 如何在 LIVE-SERVER 上使用 Javascript 找到当前的 html 文件页名称
- fusionauth - Fusion auth 应用程序无法以有限的日志记录启动,是否有将日志记录从 INFO 更改为 DEBUG 的配置?