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 const iterowalne |
Tak |
Wspólny zakres | Tak |
Pożyczony zakres | Nie. |
Elementy członkowskie
Funkcje składowe | Opis |
---|---|
KonstruktoryC++20 | Skonstruuj element single_view . |
begin C++20 |
Pobierz iterator do elementu . |
data C++20 |
Pobierz wskaźnik do elementu. |
end C++20 |
Pobierz element sentinel na końcu widoku. |
size C++20 |
Pobierz liczbę elementów. Zawsze zwraca wartość 1 . |
Dziedziczone z view_interface |
Opis |
back C++20 |
Pobierz element . |
empty C++20 |
Sprawdź, czy widok jest pusty (zawsze zwraca wartość false ). |
front C++20 |
Pobierz element . |
operator[] C++20 |
Pobierz element na określonej pozycji (prawidłowa jest tylko pozycja 0). |
operator bool C++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