std::valarray<T>::cshift
Von de.cppreference.net
valarray<T> cshift( int count ) const;
|
||
Gibt ein neues valarray derselben Größe zurück, dessen Elemente um count Positionen zyklisch verschoben sind.
Ein nicht-negativer Wert von count verschiebt die Elemente um count Stellen nach links, und ein negativer Wert von count verschiebt sie um -count Stellen nach rechts.
Parameter
| count | - | Anzahl der Positionen, um die die Elemente verschoben werden sollen |
Rückgabewert
Das resultierende valarray mit zirkular verschobenen Elementen.
Anmerkungen
Die Funktion kann mit einem Rückgabetyp implementiert werden, der von std::valarray verschieden ist. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften:
- Alle
constMitgliedsfunktionen von std::valarray sind vorhanden. - std::valarray, std::slice_array, std::gslice_array, std::mask_array und std::indirect_array können aus dem Ersatztyp konstruiert werden.
- Für jede Funktion, die ein
const std::valarray<T>&außer begin() und end()(seit C++11) akzeptiert, müssen identische Funktionen, die die Ersatztypen akzeptieren, hinzugefügt werden; - Für jede Funktion, die zwei
const std::valarray<T>&-Argumente akzeptiert, müssen identische Funktionen, die jede Kombination ausconst std::valarray<T>&und Ersatztypen akzeptieren, hinzugefügt werden. - Der Rückgabetyp fügt nicht mehr als zwei Ebenen der Template-Verschachtelung über dem am tiefsten verschachtelten Argumenttyp hinzu.
Beispiel
Diesen Code ausführen
#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));
}
Ausgabe:
[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
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 618 | C++98 |
der Ausdruck der verschobenen Elemente
enthält Division-durch-Null wenn
size()
ist
0
|
beschreibt die neuen Positionen
ohne Ausdrücke zu verwenden |
Siehe auch
|
Verschiebt die Elemente des valarray mit Nullauffüllung
(öffentliche Elementfunktion) |