Common mathematical functions | |||||||||||||||||||||||||||||||
Mathematical special functions(C++17) | |||||||||||||||||||||||||||||||
Mathematical constants(C++20) | |||||||||||||||||||||||||||||||
Basic linear algebra algorithms(C++26) | |||||||||||||||||||||||||||||||
Data-parallel types (SIMD)(C++26) | |||||||||||||||||||||||||||||||
Floating-point environment(C++11) | |||||||||||||||||||||||||||||||
Complex numbers | |||||||||||||||||||||||||||||||
Numeric array (valarray ) | |||||||||||||||||||||||||||||||
Pseudo-random number generation | |||||||||||||||||||||||||||||||
Bit manipulation(C++20) | |||||||||||||||||||||||||||||||
Saturation arithmetic(C++26) | |||||||||||||||||||||||||||||||
Factor operations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Interpolations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Generic numeric operations | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
C-style checked integer arithmetic | |||||||||||||||||||||||||||||||
|
valarray<T> cshift(int count)const; | ||
Returns a new valarray of the same size with elements whose positions are shifted circularly bycount elements.
A non-negative value ofcount shifts the elements circularly leftcount places and a negative value ofcount shifts the elements circularly right-count places.
Contents |
count | - | number of positions to shift the elements by |
The resulting valarray with circularly shifted elements.
The function can be implemented with the return type different fromstd::valarray. In this case, the replacement type has the following properties:
#include <iostream>#include <valarray> int main(){std::valarray<int> v{1,2,3,4,5,6,7,8}; for(autoconst& val: v)std::cout<< val<<' ';std::cout<<'\n'; std::valarray<int> v2= v.cshift(2); for(autoconst& 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
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 618 | C++98 | the expression of the shifted elements contains zero-division if size() is0 | describes the new positions without using expressions |
zero-filling shift the elements of the valarray (public member function)[edit] |