std::experimental::ranges:: is_permutation
|
Definido en el encabezado
<experimental/ranges/algorithm>
|
||
|
template
<
ForwardIterator I1, Sentinel
<
I1
>
S1, ForwardIterator I2, Sentinel
<
I2
>
S2,
class
Pred
=
ranges::
equal_to
<>
,
|
(1) | (ranges TS) |
|
template
<
ForwardRange R1, ForwardRange R2,
class
Pred
=
ranges::
equal_to
<>
,
class
Proj1
=
ranges::
identity
,
class
Proj2
=
ranges::
identity
>
|
(2) | (ranges TS) |
|
template
<
ForwardIterator I1, Sentinel
<
I1
>
S1,
class
I2,
class
Pred
=
ranges::
equal_to
<>
,
|
(3) |
(ranges TS)
(obsoleto) |
|
template
<
ForwardRange R1,
class
I2,
class
Pred
=
ranges::
equal_to
<>
,
class
Proj1
=
ranges::
identity
,
class
Proj2
=
ranges::
identity
>
|
(4) |
(ranges TS)
(obsoleto) |
[
first1
,
last1
)
que hace que el rango sea igual a
[
first2
,
last2
)
, y
false
en caso contrario.
Dos rangos se consideran iguales si tienen el mismo número de elementos y, para cada iterador
i
en el rango
[
first1
,
last1
)
,
ranges::
invoke
(
pred,
ranges::
invoke
(
proj1,
*
i
)
,
ranges::
invoke
(
proj2,
*
(
first2
+
(
i
-
first1
)
)
)
)
es
true
.
No obstante las declaraciones representadas anteriormente, el número real y el orden de los parámetros de plantilla para las declaraciones de algoritmos no está especificado. Por lo tanto, si se utilizan argumentos de plantilla explícitos al invocar un algoritmo, el programa probablemente no sea portable.
ContenidosParámetros
Valor de retorno
true
si el rango
ComplejidadA lo sumo O(N 2 ) aplicaciones del predicado y cada proyección, o exactamente N si las secuencias ya son iguales, donde N = last1 - first1 . Sin embargo, si SizedSentinel < S1, I1 > && SizedSentinel < S2, I2 > se satisface y last1 - first1 ! = last2 - first2 , no se realizan aplicaciones del predicado ni de las proyecciones. Ejemplo
Véase también
|