Spec-Zone.ru › C++

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​
описывает новые позиции
без использования выражений

См. также

shift
сдвиг элементов valarray с нулевым заполнением
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/valarray/cshift

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API