Namespaces
Variants

std::valarray<T>:: shift

From cppreference.net
valarray < T > shift ( int count ) const ;

Возвращает новый valarray того же размера с элементами, позиции которых сдвинуты на count элементов. Новая позиция каждого элемента равна i−count , где i - предыдущая позиция. Значение сдвинутых элементов равно T ( ) .

Содержание

Параметры

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.shift(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 0 0

Смотрите также

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