std::valarray<T>:: cshift
|
valarray
<
T
>
cshift
(
int
count
)
const
;
|
||
|
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 | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 618 | C++98 |
выражение сдвинутых элементов
содержит деление на ноль, если
size()
равно
0
|
описывает новые позиции
без использования выражений |
Смотрите также
|
нулевое заполнение при сдвиге элементов valarray
(публичная функция-член) |