std::valarray<T>::shift
valarray<T> shift( int count ) const; |
Возвращает новый valarray того же размера, в котором позиции элементов сдвинуты на count элементов. Новая позиция каждого элемента равна i−count, где i — его предыдущая позиция. Значение элементов, сдвинутых внутрь, равно T().
Параметры
| count | - | число позиций, на которое сдвигаются элементы |
Возвращаемое значение
Полученный valarray со сдвинутыми элементами.
Примечания
Функция может быть реализована с типом возвращаемого значения, отличным от std::valarray. В этом случае тип-замена обладает следующими свойствами:
- Предоставляются все функции-члены
std::valarrayс квалификатором const. -
std::valarray,std::slice_array,std::gslice_array,std::mask_arrayиstd::indirect_arrayмогут быть сконструированы из типа-замены. - Для каждой функции, принимающей аргумент типа conststd::valarray<T>& за исключением
begin()иend()(начиная с C++11), должны быть добавлены идентичные функции, принимающие типы-замены; - Для каждой функции, принимающей два аргумента типа conststd::valarray<T>&, должны быть добавлены идентичные функции, принимающие все комбинации аргументов типов conststd::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 (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/valarray/shift