std::valarray<T>::cshift
cppreference.net에서
valarray<T> cshift( int count ) const;
|
||
같은 크기의 새로운 valarray를 반환하며, 요소의 위치가 count 요소만큼 순환적으로 이동합니다.
count의 값이 음수가 아니면 요소를 왼쪽으로 count만큼 순환 이동하고, 음수이면 count의 값이 요소를 오른쪽으로 -count만큼 순환 이동합니다.
매개변수
| count | - | 요소들을 이동시킬 위치 수 |
반환값
원형으로 이동된 요소들을 가진 결과 valarray.
비고
함수는 반환 유형이 std::valarray와 다른 것으로 구현될 수 있습니다. 이 경우 대체 유형은 다음과 같은 속성을 갖습니다:
- 모든
const의 멤버 함수 std::valarray 가 제공됩니다. - std::valarray, std::slice_array, std::gslice_array, std::mask_array 및 std::indirect_array 대체 유형으로부터 생성될 수 있습니다.
- 를 취하는 모든 함수에 대해,
const std::valarray<T>&을 제외하고 begin() 및 end()(C++11부터), 대체 유형을 취하는 동일한 함수가 추가되어야 합니다; - 를 취하는 모든 함수에 대해, 두 개의
const std::valarray<T>&인수, 동일한 함수가 모든 조합을 취하는const std::valarray<T>&및 대체 유형이 추가되어야 합니다. - 반환 유형은 가장 깊게 중첩된 인수 유형보다 두 수준 이상의 템플릿 중첩을 추가하지 않습니다.
예제
이 코드 실행
#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));
}
출력:
[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
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 618 | C++98 |
이동된 요소들의 표현식이
size()
가
0
이면 0으로 나누기 포함
|
표현식 사용 없이 새로운 위치들을
설명함 |
참고 항목
|
valarray의 요소들을 제로-채움 이동
(public member function) |