Spec-Zone.ru › C++

std::ranges::common_view<V>::end

constexpr auto end();
(1) (since C++20)
constexpr auto end() const requires ranges::range<const V>;
(2) (since C++20)
1) Возвращает итератор, представляющий конец common_view, то есть:
  • ranges::begin(base_) + ranges::size(base_), если оба ranges::random_access_range<V> и ranges::sized_range<V> выполняются,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(base_)) в противном случае.
Здесь base_ (имя используется только для демонстрации) — это базовое представление.
2) Аналогично (1), но V имеет квалификатор const.

Параметры

(нет)

Возвращаемое значение

Итератор, представляющий конец базового представления.

Пример

#include <iostream>
#include <numeric>
#include <ranges>
 
int main()
{
    constexpr int n{4};
 
    constexpr auto v1 = std::views::iota(1)
                      | std::views::take(n)
                      | std::views::common
                      ;
    constexpr auto v2 = std::views::iota(2)
                      | std::views::take(n)
                      ;
    const int product = std::inner_product(v1.begin(), v1.end(),
                                           v2.begin(),
                                           0);
    std::cout << product << '\n';
}

Вывод:

40

См. также

begin
(C++20)
возвращает итератор начала
(публичный член-функция)
ranges::begin
(C++20)
возвращает итератор начала диапазона
(объект точки кастомизации)
ranges::end
(C++20)
возвращает конечную метку диапазона
(объект точки кастомизации)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/common_view/end

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API