std::valarray<T>::cshift
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 <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';
}Вывод:
1 2 3 4 5 6 7 8 3 4 5 6 7 8 1 2
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применимо к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| LWG 618 | C++98 | выражение сдвинутых элементов содержит деление на ноль, если size() равно 0 | описывает новые позиции без использования выражений |
См. также
| сдвиг элементов valarray с нулевым заполнением (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/valarray/cshift