std::experimental::ranges:: equal
|
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
)
と等しい場合
true
を返し、それ以外の場合
false
を返す。
2つの範囲は、同じ数の要素を持ち、範囲
[
first1
,
last1
)
内のすべてのイテレータ
i
について、
ranges::
invoke
(
pred,
ranges::
invoke
(
proj1,
*
i
)
,
ranges::
invoke
(
proj2,
*
(
first2
+
(
i
-
first1
)
)
)
)
が
true
である場合に等しいと見なされます。
上記に示された宣言にもかかわらず、アルゴリズム宣言の実際のテンプレートパラメータの数と順序は未規定です。したがって、アルゴリズムを呼び出す際に明示的なテンプレート引数を使用する場合、プログラムはおそらく移植性がありません。
目次パラメータ
戻り値true 2つの範囲が等しい場合、それ以外の場合は false を返します。 注記
コンテナ全体の等価性を比較する場合、
計算量
1,2)
SizedSentinel
<
S1, I1
>
&&
SizedSentinel
<
S2, I2
>
が満たされ、かつ
last1
-
first1
!
=
last2
-
first2
の場合、述語と射影の適用は行われない。それ以外の場合、最大でmin(
last1
-
first1
,
last2
-
first2
)回の述語と各射影の適用が行われる。
3,4)
最大で
last1
-
first1
回の述語と各射影の適用。
実装例
例
関連項目
|