Namespaces
Variants

std::valarray<T>:: cshift

From cppreference.net
valarray < T > cshift ( int count ) const ;
**Перевод:**
valarray < T > cshift ( int count ) const ;
**Примечание:** В данном случае весь текст внутри тегов ` ` является C++ кодом, поэтому в соответствии с инструкциями он не переводится. HTML структура и атрибуты также сохранены без изменений.

Возвращает новый 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
(публичная функция-член)