std::ranges::drop_while_view<V,Pred>::base

来自cppreference.com
 
 
范围库
范围访问
范围转换器
(C++23)
范围原语



悬垂迭代器处理
范围概念
视图

范围工厂
适配器
范围生成器
范围适配器对象
范围适配器闭包对象
辅助项
 
 
constexpr V base() const& requires std::copy_constructible<V>;
(1) (C++20 起)
constexpr V base() &&;
(2) (C++20 起)

返回底层视图的副本。

1) 从底层视图复制构造结果。
2) 从底层视图移动构造结果。

参数

(无)

返回值

底层视图的副本。

示例

#include <array>
#include <ranges>
#include <iostream>
 
void print(auto const& container) {
    for (const auto& elem : container)
        std::cout << elem << ' ';
    std::cout << '\n';
}
 
int main()
{
    std::array data{ 1, 2, 3, 4 };
    print(data);
 
    auto stub = [](int x) { return x < 2; };
    auto view = std::ranges::drop_while_view{ data, stub };
 
    auto base = view.base(); // `base` 指代 `data`
 
    std::ranges::reverse(base); //< 直接更改 `data`
    print(data);
}

输出:

1 2 3 4 
4 3 2 1