Namespaces
Variants

std::valarray<T>:: cshift

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

返回一个大小相同的新 valarray,其元素位置被循环移动了 count 个元素。

count 值为非负数时,元素将循环左移 count 个位置;当 count 值为负数时,元素将循环右移 - count 个位置。

目录

参数

count - 元素需要移动的位数

返回值

结果为一个包含循环移位元素的 valarray。

注释

该函数可以实现为返回类型不同于 std::valarray 的情况。此时,替换类型需具备以下特性:

示例

#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++标准。

缺陷报告 适用范围 发布时行为 正确行为
LWG 618 C++98 size() 0
则移位元素的表达式包含零除错误
在不使用表达式的情况下
描述新位置

参见

对 valarray 的元素进行零填充移位
(公开成员函数)