Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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