命名空间
变体
操作

std::ranges::drop_view<V>::drop_view

来自 cppreference.cn
< cpp‎ | ranges‎ | drop view
 
 
范围库 (Ranges library)
范围适配器 (Range adaptors)
 
 
drop_view() requires std::default_initializable<V> = default;
(1) (C++20 起)
constexpr explicit drop_view( V base, ranges::range_difference_t<V> count );
(2) (C++20 起)

构造一个 drop_view

1) 默认构造函数。值初始化底层视图 base_ 并将计数 count_ 初始化为 0。构造后,base() 返回 V() 的副本,size() 等于底层视图的大小。
2)std::move(base) 初始化底层视图 base_,并用 count 初始化计数 count_。构造后,base() 返回 base 的副本,并且 size() 返回 ranges::size(base) - count(如果 base 的大小不小于 count),否则返回 0

[编辑] 参数

base - 底层视图
count - 要跳过的元素数量

[编辑] 示例

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <ranges>
 
int main()
{
    constexpr std::array hi{'H', 'e', 'l', 'l', 'o', ',',
                            ' ', 'C', '+', '+', '2', '0'};
 
    std::ranges::for_each(hi, [](const char c){ std::cout << c; });
    std::cout << '\n';
 
    constexpr auto n = std::distance(hi.cbegin(), std::ranges::find(hi, 'C'));
 
    auto cxx = std::ranges::drop_view{hi, n};
 
    std::ranges::for_each(cxx, [](const char c){ std::cout << c; });
    std::cout << '\n';
}

输出

Hello, C++20
C++20

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 3714
(P2711R1)
C++20 多参数构造函数不是显式的 改为 explicit
English Deutsch 日本語 한국어 中文(简体) 中文(繁體)