std::valarray<T>::cshift
De es.cppreference.net
valarray<T> cshift( int count ) const;
|
||
Devuelve un nuevo valarray del mismo tamaño con elementos cuyas posiciones se desplazan circularmente por count elementos.
Un valor no negativo de count desplaza los elementos circularmente a la izquierda count lugares y un valor negativo de count desplaza los elementos circularmente a la derecha -count lugares.
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:
- Todas
constlas funciones miembro de std::valarray son proporcionadas. - 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 tome un
const std::valarray<T>&excepto begin() y end()(desde C++11), se añadirán funciones idénticas que tomen los tipos de reemplazo; - Para cada función que tome dos
const std::valarray<T>&argumentos, se añadirán funciones idénticas que tomen cada combinación deconst 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
Ejecutar este código
#include <print>
#include <valarray>
int main()
{
const std::valarray<int> v{1, 2, 3, 4, 5, 6, 7, 8};
std::println("{}", v);
std::println("{} <- 3", v.cshift(3));
std::println("{} <- 11", v.cshift(11));
std::println("{} -> 2", v.cshift(-2));
std::println("{} -> 10", v.cshift(-10));
}
Salida:
[1, 2, 3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8, 1, 2, 3] <- 3
[4, 5, 6, 7, 8, 1, 2, 3] <- 11
[7, 8, 1, 2, 3, 4, 5, 6] -> 2
[7, 8, 1, 2, 3, 4, 5, 6] -> 10
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) |