Condividi tramite


ref_view classe (libreria standard C++)

Visualizzazione che fa riferimento agli elementi appartenenti a un altro intervallo.

Sintassi

template<std::ranges::range R>
    requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;

Parametri del modello

R
Intervallo a cui fare riferimento.

Membri

Funzioni membro Descrizione
Costruttori C++20 Creare un oggetto ref_view.
baseC++20 Ottenere un riferimento all'intervallo sottostante.
beginC++20 Ottenere un iteratore al primo elemento.
dataC++20 Ottenere un puntatore al primo elemento nell'intervallo a cui si fa riferimento.
emptyC++20 Verificare se l'oggetto ref_view è vuoto.
endC++20 Ottenere la sentinel alla fine di questo ref_viewoggetto .
sizeC++20 Ottiene il numero di elementi. L'intervallo sottostante deve soddisfare sized_range.
Ereditato da view_interface Descrizione
backC++20 Ottiene l'ultimo elemento.
frontC++20 Ottenere il primo elemento.
operator[]C++20 Ottiene l'elemento nella posizione specificata.
operator boolC++20 Verificare se questo ref_view non è vuoto.

Visualizzare le caratteristiche

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

Caratteristica Descrizione
Adattatore di intervallo views::all oppure views::common
Intervallo sottostante Deve soddisfare input_range
Tipo di elemento Uguale all'intervallo sottostante
Visualizzare la categoria iteratore Uguale all'intervallo sottostante
Dimensioni Solo se l'intervallo sottostante soddisfa sized_range
Iterabile const
Intervallo comune Solo se l'intervallo sottostante soddisfa common_range
Intervallo preso in prestito

Requisiti

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

Spazio dei nomi: std::ranges

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

Costruttori

Costruire un'istanza di un oggetto ref_view

// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);

Parametri

rg
Intervallo a cui fare riferimento.

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

Valore restituito

Istanza di ref_view.

Osservazioni:

Il modo migliore per creare un ref_view oggetto consiste nell'usare l'adattatore views::all 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.

Un ref_view oggetto è utile per convertire un contenitore in una visualizzazione. Ad esempio, è possibile usare ref_view per convertire un oggetto vector in una visualizzazione, che rende più economico passare gli elementi del vettore intorno.

Esempio: ref_view

// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v = {1,2,3};
    auto refView = std::views::all(v);
    std::cout << &refView[1] << " : " << &v[1]; // outputs two identical memory addresses, e.g. 00000239AFAFDF90 : 00000239AFAFDF90
    refView[0] = 10; // modifies v[0]
    std::cout << "\n" << v[0]; // 10
}
00000239AFAFDF90 : 00000239AFAFDF90
10

base

Ottiene una copia dell'intervallo sottostante.

constexpr R& base() const;

Parametri

Nessuna.

Valore restituito

Intervallo sottostante.

begin

Ottenere un iteratore al primo elemento dell'oggetto ref_view.

constexpr iterator_t<R> begin() const;

Parametri

Nessuna.

Valore restituito

Iteratore che punta al primo elemento in questo ref_viewoggetto .

Immagine di un vettore con gli elementi 10, 20 e 30. Il primo elemento contiene 10 ed è etichettato begin(). L'ultimo elemento contiene 30 e viene etichettato come 'ultimo elemento'. Una casella immaginaria dopo l'ultimo elemento indica la sentinella ed è etichettata end().

data

Ottenere un puntatore al primo elemento in questo ref_viewoggetto . Gli elementi nell'intervallo devono essere contigui.

constexpr auto data() const requires contiguous_range<R>;

Parametri

Nessuna.

Valore restituito

Puntatore al primo elemento.

empty

Verificare se l'oggetto ref_view è vuoto.

constexpr bool empty() const

Parametri

Nessuna.

Valore restituito

Restituisce true se l'oggetto ref_view non contiene elementi. In caso contrario, false.

end

Ottenere la sentinel alla fine di questo ref_viewoggetto .

constexpr sentinel_t<R> end() const

Valore restituito

Sentinel che segue l'ultimo elemento in questo ref_view:

Immagine di un vettore con gli elementi 10, 20 e 30. Il primo elemento contiene 10 ed è etichettato begin(). L'ultimo elemento contiene 30 e viene etichettato come 'ultimo elemento'. Una casella immaginaria dopo l'ultimo elemento indica la sentinella ed è etichettata end().

size

Ottiene il numero di elementi.

constexpr auto size() const requires sized_range<R>

Parametri

Nessuna.

Valore restituito

Numero di elementi in ref_view.

Vedi anche

<ranges>
all adattatore di intervallo
classi di visualizzazione