std::valarray<T>::cshift
Depuis fr.cppreference.net
valarray<T> cshift( int count ) const;
|
||
Renvoie un nouveau valarray de même taille dont les éléments ont leurs positions décalées circulairement de count éléments.
Une valeur non négative de count décale les éléments circulairement vers la gauche de count places et une valeur négative de count décale les éléments circulairement vers la droite de -count places.
Paramètres
| count | - | nombre de positions pour décaler les éléments |
Valeur de retour
Le valarray résultant avec les éléments décalés circulairement.
Notes
La fonction peut être implémentée avec un type de retour différent de std::valarray. Dans ce cas, le type de remplacement possède les propriétés suivantes :
- Toutes les
constfonctions membres de std::valarray sont fournies. - std::valarray, std::slice_array, std::gslice_array, std::mask_array et std::indirect_array peuvent être construits à partir du type de remplacement.
- Pour chaque fonction prenant un
const std::valarray<T>&sauf begin() et end()(depuis C++11), des fonctions identiques prenant les types de remplacement doivent être ajoutées ; - Pour chaque fonction prenant deux
const std::valarray<T>&arguments, des fonctions identiques prenant toutes les combinaisons deconst std::valarray<T>&et de types de remplacement doivent être ajoutées. - Le type de retour n'ajoute pas plus de deux niveaux d'imbrication de template par rapport au type d'argument le plus profondément imbriqué.
Exemple
Exécuter ce code
#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));
}
Sortie:
[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
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 618 | C++98 |
l'expression des éléments décalés
contient une division par zéro si
size()
est
0
|
décrit les nouvelles positions
sans utiliser d'expressions |
Voir aussi
|
décalage avec remplissage par des zéros des éléments du valarray
(fonction membre publique) |