std::experimental::ranges:: equal
|
Определено в заголовке
<experimental/ranges/algorithm>
|
||
|
template
<
InputIterator I1, Sentinel
<
I1
>
S1, InputIterator I2, Sentinel
<
I2
>
S2,
class
Pred
=
ranges::
equal_to
<>
,
|
(1) | (ranges TS) |
|
template
<
InputRange R1, InputRange R2,
class
Pred
=
ranges::
equal_to
<>
,
class
Proj1
=
ranges::
identity
,
class
Proj2
=
ranges::
identity
>
|
(2) | (ranges TS) |
|
template
<
InputIterator I1, Sentinel
<
I1
>
S1,
class
I2,
class
Pred
=
ranges::
equal_to
<>
,
|
(3) |
(ranges TS)
(устарело) |
|
template
<
InputRange R1,
class
I2,
class
Pred
=
ranges::
equal_to
<>
,
class
Proj1
=
ranges::
identity
,
class
Proj2
=
ranges::
identity
>
|
(4) |
(ranges TS)
(устарело) |
[
first1
,
last1
)
равен диапазону
[
first2
,
last2
)
, и
false
в противном случае.
Два диапазона считаются равными, если они имеют одинаковое количество элементов и для каждого итератора
i
в диапазоне
[
first1
,
last1
)
,
ranges::
invoke
(
pred,
ranges::
invoke
(
proj1,
*
i
)
,
ranges::
invoke
(
proj2,
*
(
first2
+
(
i
-
first1
)
)
)
)
является
true
.
Несмотря на приведённые выше объявления, фактическое количество и порядок параметров шаблона для объявлений алгоритмов не определено. Таким образом, если при вызове алгоритма используются явные аргументы шаблона, программа, вероятно, является непереносимой.
Содержание
Параметры
Возвращаемое значениеtrue если два диапазона равны, в противном случае возвращает false . Примечания
При сравнении контейнеров целиком на равенство,
Сложность
1,2)
Если
SizedSentinel
<
S1, I1
>
&&
SizedSentinel
<
S2, I2
>
выполняется и
last1
-
first1
!
=
last2
-
first2
, применения предиката и проекций не происходит. В противном случае — не более min(
last1
-
first1
,
last2
-
first2
) применений предиката и каждой проекции.
3,4)
Максимум
last1
-
first1
применений предиката и каждой проекции.
Возможная реализация
Пример
См. также
|