std::valarray<T>:: cshift
|
valarray
<
T
>
cshift
(
int
count
)
const
;
|
||
Retorna un nuevo valarray del mismo tamaño con elementos cuyas posiciones son desplazadas circularmente por count elementos.
Un valor no negativo de count desplaza los elementos circularmente hacia la izquierda count posiciones y un valor negativo de count desplaza los elementos circularmente hacia la derecha - count posiciones.
Contenidos |
Parámetros
| count | - | número de posiciones para desplazar los elementos |
Valor de retorno
El valarray resultante con elementos desplazados circularmente.
Notas
La función puede implementarse con un tipo de retorno diferente de std::valarray . En este caso, el tipo de reemplazo tiene las siguientes propiedades:
-
- Se proporcionan todas las funciones miembro const de std::valarray .
- std::valarray , std::slice_array , std::gslice_array , std::mask_array y std::indirect_array pueden construirse a partir del tipo de reemplazo.
- Para cada función que toma un const std:: valarray < T > & excepto begin() y end() (desde C++11) , se deben añadir funciones idénticas que tomen los tipos de reemplazo;
- Para cada función que toma dos argumentos const std:: valarray < T > & , se deben añadir funciones idénticas que tomen cada combinación de const std:: valarray < T > & y tipos de reemplazo.
- El tipo de retorno no añade más de dos niveles de anidamiento de plantilla sobre el tipo de argumento más profundamente anidado.
Ejemplo
#include <iostream> #include <valarray> int main() { std::valarray<int> v{1, 2, 3, 4, 5, 6, 7, 8}; for (auto const& val : v) std::cout << val << ' '; std::cout << '\n'; std::valarray<int> v2 = v.cshift(2); for (auto const& val : v2) std::cout << val << ' '; std::cout << '\n'; }
Salida:
1 2 3 4 5 6 7 8 3 4 5 6 7 8 1 2
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 618 | C++98 |
la expresión de los elementos desplazados
contiene división por cero si
size()
es
0
|
describe las nuevas posiciones
sin usar expresiones |
Véase también
|
desplazamiento con relleno de ceros de los elementos del valarray
(función miembro pública) |