Значение терминов, идентичных, равных, эквивалентных в Стандарте - PullRequest
3 голосов
/ 24 апреля 2019

В Стандарте есть по крайней мере три термина с похожим значением: идентично , равно и эквивалентно .Все это используется при описании алгоритмов.Скажем, std::adjacent_find:

Поиск в диапазоне [first, last) двух последовательных идентичных элементов.

Но описание компаратора гласит:

двоичный предикат, который возвращает true, если элементы должны рассматриваться как равные

Когда речь идет об ассоциативных контейнерах, используется слово эквивалент .Для двух элементов a и b это означает (примерно) !(a < b) && !(b < a).В то время как равно означает a == b.

Что означает термин идентичный ?Это определено в Стандарте?

1 Ответ

5 голосов
/ 24 апреля 2019

Нет определения «идентичного», которое я мог бы найти в соответствующих разделах стандарта. Похоже на разговорное использование слова. Что также подтверждается тем фактом, что ваша цитата взята из cppreference. Нормативное определение adjacent_find в стандарте - , указанное в терминах == (или предикат) напрямую :

Возвращает : первый итератор i такой, что оба i и i + 1 находятся в диапазоне [first, last), для которого выполняются следующие соответствующие условия удерживайте: *i == *(i + 1), pred(*i, *(i + 1)) != false. Возвращает последний, если нет такой итератор найден.

Хотя cppreference является бесценным ресурсом, его цель состоит в том, чтобы переварить стандартный текст в легкодоступный и понятный материал. Иногда, это будет использовать разговорное использование слов для интуитивного объяснения. Это один из таких случаев.

...