std::valarray::cshift(3)
π std::valarray::cshift(3) β C++ Standard Libary π
πΈ NAME πΈ
std::valarray::cshiftβstd::valarray::cshift(yes bestie, that's literally the name line, and we're keeping it exactly like that) π
β¨ Synopsis β¨
Okay so the signature is literally this, no cap:
valarray<T> cshift( int count ) const;
Returns a new valarray of the same size with elements whose positions are shifted circularly by count elements.
A non-negative value of count shifts the elements circularly left count places, and a negative value of count shifts the elements circularly right -count places. Slay. π
π Parameters π
countβ number of positions to shift the elements by.
π Return value π
The resulting valarray with circularly shifted elements. Periodt. β¨
π§ Notes π§
The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:
- All
constmember functions ofstd::valarrayare provided. std::valarray,std::slice_array,std::gslice_array,std::mask_arrayandstd::indirect_arraycan be constructed from the replacement type.- For every function taking a
const std::valarray<T>&exceptbegin()andend()(since C++11), identical functions taking the replacement types shall be added; - For every function taking two
const std::valarray<T>&arguments, identical functions taking every combination ofconst std::valarray<T>&and replacement types shall be added. - The return type does not add more than two levels of template nesting over the most deeply-nested argument type.
π§ Example π§
// Run this code
#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';
}
π₯οΈ Output π₯οΈ
1 2 3 4 5 6 7 8
3 4 5 6 7 8 1 2
π Defect reports π
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
- DR:
LWG 618; Applied to:C++98- Behavior as published: the expression of the shifted elements contains zero-division if
size()is 0 - Correct behavior: describes the new positions without using expressions
- Behavior as published: the expression of the shifted elements contains zero-division if
π See also π
shiftβ zero-filling shift the elements of the valarray (public member function).
π Hidden category π
- Pages with unreviewed LWG DR marker
π«Ά Sign-off time, bestie: this page comes from http://cppreference.com, dated 2024.06.10, and the footer name is std::valarray::cshift(3). Bye! πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms