std::valarray<T>:: cshift
|
valarray
<
T
>
cshift
(
int
count
)
const
;
|
||
Gibt ein neues valarray derselben Größe zurück, dessen Elemente zyklisch um count Elemente verschoben sind.
Ein nicht-negativer Wert von count verschiebt die Elemente zyklisch um count Positionen nach links und ein negativer Wert von count verschiebt die Elemente zyklisch um - count Positionen nach rechts.
Inhaltsverzeichnis |
Parameter
| count | - | Anzahl der Positionen, um die die Elemente verschoben werden sollen |
Rückgabewert
Das resultierende valarray mit zirkular verschobenen Elementen.
Hinweise
Die Funktion kann mit einem Rückgabetyp implementiert werden, der sich von std::valarray unterscheidet. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften:
-
- Alle const Memberfunktionen von std::valarray werden bereitgestellt.
- 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 hinzugefügt werden, die die Ersatztypen akzeptieren;
- Für jede Funktion, die zwei const std:: valarray < T > & Argumente akzeptiert, müssen identische Funktionen hinzugefügt werden, die jede Kombination von const std:: valarray < T > & und Ersatztypen akzeptieren.
- Der Rückgabetyp fügt nicht mehr als zwei Ebenen von Template-Verschachtelung über dem am tiefsten verschachtelten Argumenttyp hinzu.
Beispiel
#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'; }
Ausgabe:
1 2 3 4 5 6 7 8 3 4 5 6 7 8 1 2
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) |