Condividi tramite


single_view classe (libreria standard C++)

Visualizzazione con un solo elemento. Questa visualizzazione è utile a scopo di test per chiamare il codice che deve essere fornito con una visualizzazione con almeno un elemento in esso contenuto.

Sintassi

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

Parametri del modello

T
Tipo dell'elemento.

Visualizzare le caratteristiche

Per una descrizione delle voci seguenti, vedere Visualizzare le caratteristiche della classe

Caratteristica Descrizione
Adattatore di intervallo views::single
Intervallo sottostante None
Tipo di elemento Specificato al momento della creazione dell'oggetto single_view
Visualizzare la categoria iteratore contiguous_range
Dimensioni Restituisce sempre 1
Iterabile const
Intervallo comune
Intervallo preso in prestito No

Membri

Funzioni membro Descrizione
Costruttori C++20 Creare un oggetto single_view.
beginC++20 Ottenere un iteratore all'elemento .
dataC++20 Ottenere un puntatore all'elemento .
endC++20 Ottenere l'sentinel alla fine della visualizzazione.
sizeC++20 Ottiene il numero di elementi. Restituisce sempre 1.
Ereditato da view_interface Descrizione
backC++20 Ottenere l'elemento .
emptyC++20 Verificare se la vista è vuota (restituisce falsesempre ).
frontC++20 Ottenere l'elemento .
operator[]C++20 Ottiene l'elemento nella posizione specificata (solo la posizione 0 è valida).
operator boolC++20 Verificare se la vista non è vuota (restituisce falsesempre ).

Osservazioni:

Il modo migliore per creare un single_view oggetto consiste nell'usare l'adattatore views::single di intervallo. Gli adattatori di intervallo sono il modo previsto per creare classi di visualizzazione. I tipi di visualizzazione vengono esposti nel caso in cui si voglia creare un tipo di visualizzazione personalizzato.

Il valore in single_view può essere modificato a meno che il valore del modello non sia const. Ad esempio: single_view<const float> sv{3.14} // this value can't be modified because it's const.

Requisiti

Intestazione: <ranges> (da C++20)

Spazio dei nomi: std::ranges

Opzione del compilatore: /std:c++20 o versione successiva è obbligatoria.

Costruttori

Creare un'istanza di un 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);

Parametri

t
Valore dell'elemento.

Per informazioni sul tipo di parametro del modello, vedere Parametri del modello.

Osservazioni:

Il modo migliore per creare un single_view oggetto consiste nell'usare l'adattatore views::single di intervallo.

1) Creare un single_view oggetto con un singolo elemento del tipo specificato costruito per impostazione predefinita. Ad esempio, single_view<float> sv{} crea un single_view oggetto con un singolo elemento di tipo float costruito per impostazione predefinita su 0.0.
2) Creare un single_view oggetto con un singolo elemento del tipo specificato che viene copiato dall'argomento specificato. Ad esempio, single_view<myObjectType> sv{myObject} crea un single_view oggetto con un singolo elemento di tipo myObjectType copiato dall'argomento .
3) Creare un single_view oggetto con un singolo elemento del tipo specificato inizializzato dall'argomento .
4) Creare un single_view oggetto con un singolo elemento del tipo specificato inizializzato con (std::forward<Args>(args)...).

Esempiosingle_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

Ottenere un puntatore al singolo elemento nella visualizzazione.

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

Parametri

Nessuna.

Valore restituito

Puntatore al singolo elemento all'interno di single_view.

data

Ottenere un puntatore al singolo elemento nell'oggetto single_view.

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

Parametri

Nessuna.

Valore restituito

Puntatore all'elemento nell'oggetto single_view.

end

Ottiene un puntatore alla sentinella dopo l'elemento .

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

Parametri

Nessuna.

Valore restituito

Puntatore alla sentinella che segue l'elemento .

size

Ottiene il numero di elementi nella visualizzazione. Restituisce sempre 1.

static constexpr size_t size() noexcept;

Parametri

Nessuna.

Valore restituito

1

Vedi anche

<ranges>
single adattatore di intervallo
empty_view
Visualizzare le classi