Udostępnij za pośrednictwem


single_view class (Standardowa biblioteka C++)

Widok, który ma tylko jeden element. Ten widok jest przydatny do celów testowych w celu wywoływania kodu, który musi być dostarczany z widokiem z co najmniej jednym elementem w nim.

Składnia

template<std::copy_constructible T>
  requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>

Parametry szablonu

T
Typ elementu.

Właściwości widoku

Opis poniższych wpisów można znaleźć w temacie View class characteristics (Wyświetlanie właściwości klas)

Characteristic opis
Adapter zakresu views::single
Zakres bazowy Brak
Typ elementu Określony podczas single_view tworzenia
Wyświetl kategorię iteratora contiguous_range
Wielkości Zawsze zwraca wartość 1
Jest constiterowalne Tak
Wspólny zakres Tak
Pożyczony zakres Nie.

Elementy członkowskie

Funkcje składowe Opis
KonstruktoryC++20 Skonstruuj element single_view.
beginC++20 Pobierz iterator do elementu .
dataC++20 Pobierz wskaźnik do elementu.
endC++20 Pobierz element sentinel na końcu widoku.
sizeC++20 Pobierz liczbę elementów. Zawsze zwraca wartość 1.
Dziedziczone z view_interface Opis
backC++20 Pobierz element .
emptyC++20 Sprawdź, czy widok jest pusty (zawsze zwraca wartość false).
frontC++20 Pobierz element .
operator[]C++20 Pobierz element na określonej pozycji (prawidłowa jest tylko pozycja 0).
operator boolC++20 Sprawdź, czy widok nie jest pusty (zawsze zwraca wartość false).

Uwagi

Najlepszym sposobem utworzenia elementu single_view jest użycie adaptera views::single zakresu. Adaptery zakresów są zamierzonym sposobem tworzenia klas widoków. Typy widoków są widoczne w przypadku utworzenia własnego niestandardowego typu widoku.

Wartość w pliku single_view można zmodyfikować, chyba że wartość szablonu to const. Na przykład: single_view<const float> sv{3.14} // this value can't be modified because it's const.

Wymagania

Nagłówek: <ranges> (od C++20)

Przestrzeń nazw: std::ranges

Opcja kompilatora: /std:c++20 lub nowsza jest wymagana.

Konstruktory

Utwórz wystąpienie klasy single_view.

1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
        requires constructible_from<T, Args...>
    constexpr single_view(in_place_t, Args&&... args);

Parametry

t
Wartość elementu.

Aby uzyskać informacje o typie parametru szablonu, zobacz Parametry szablonu.

Uwagi

Najlepszym sposobem utworzenia elementu single_view jest użycie adaptera views::single zakresu.

1) Utwórz obiekt single_view z jednym elementem określonego typu, który jest konstruowany domyślnie. Na przykład tworzy obiekt single_view z pojedynczym elementem typufloat, który jest domyślnie skonstruowany jako 0.0. single_view<float> sv{}
2) Utwórz element single_view z jednym elementem określonego typu, który jest inicjowany na podstawie określonego argumentu. Na przykład single_view<myObjectType> sv{myObject} tworzy element single_view z pojedynczym elementem typu myObjectType , który jest inicjowany na podstawie argumentu.
3) Utwórz element single_view z jednym elementem określonego typu, który jest inicjowany z argumentu.
4) Utwórz element single_view z jednym elementem określonego typu zainicjowanym za pomocą (std::forward<Args>(args)...)polecenia .

Przykład: single_view

/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>

int main()
{
    std::ranges::single_view<int> sv{7};
    std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7

    std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
    std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit

begin

Pobierz wskaźnik do pojedynczego elementu w widoku.

constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;

Parametry

Brak.

Wartość zwracana

Wskaźnik do pojedynczego elementu wewnątrz elementu single_view.

data

Pobierz wskaźnik do pojedynczego elementu w elemecie single_view.

constexpr T* data() noexcept;
constexpr const T* data() const noexcept;

Parametry

Brak.

Wartość zwracana

Wskaźnik do elementu w elemecie single_view.

end

Pobiera wskaźnik do sentinel po elemecie .

constexpr T* end() noexcept;
constexpr const T* end() const noexcept;

Parametry

Brak.

Wartość zwracana

Wskaźnik do sentinel, który jest zgodny z elementem.

size

Pobierz liczbę elementów w widoku. Zawsze zwraca wartość 1.

static constexpr size_t size() noexcept;

Parametry

Brak.

Wartość zwracana

1

Zobacz też

<ranges>
single adapter zakresu
empty_view
Klasy widoków