Condividi tramite


multiset Class

Libreria di modelli Standard multiset viene utilizzata per l'archiviazione e recupero dei dati da un insieme in cui i valori degli elementi contenuti non è necessario univoci e in cui vengono utilizzati come valori chiave in base al quale i dati sono ordinati in automaticamente.Non è possibile modificare direttamente il valore della chiave di un elemento in un multiset.Invece, i valori precedenti devono essere eliminati e inseriti elementi con i nuovi valori.

template <
   class Key, 
   class Compare=less<Key>, 
   class Allocator=allocator<Key> 
>
class multiset

Parametri

  • Chiave
    Il tipo di dati dell'elemento da memorizzare nel multiset.

  • Confronto
    Il tipo che fornisce un oggetto di funzione che può confrontare i valori di due elementi come chiavi di ordinamento per determinare l'ordine relativo nel multiset.Il predicato binario meno<Key> è il valore predefinito.

  • Allocator
    Il tipo che rappresenta l'oggetto allocatore stored che incapsula i dettagli relativi al multiset allocazione e deallocazione della memoria.Il valore predefinito è allocatore*<Key>.*

Note

STL classe multiset è:

  • Un contenitore associativo, è un contenitore di dimensione variabile che supporta il recupero efficiente dei valori degli elementi in base a un valore di chiave associato.

  • Reversibile, poiché fornisce gli iteratori bidirezionali per accedere ai relativi elementi.

  • Ordinare, in quanto gli elementi sono ordinati per valori di chiave all'interno del contenitore in conformità con una funzione di confronto specificato.

  • Più nel senso che gli elementi non sono necessario avere chiavi univoche, in modo che un valore chiave può avere numerosi valori dell'elemento associati.

  • Un semplice contenitore associativo perché i valori di elementi sono valori di chiave.

  • Una classe template, perché la funzionalità fornita è generica e in modo indipendente dal tipo specifico di dati contenuti come elementi.Il tipo di dati da utilizzare è, invece, specificato come parametro nel modello di classe con la funzione di confronto e allocatore.

L'iteratore fornita dalla classe multiset è un iteratore bidirezionale, ma le funzioni membro della classe inserire e multiset dispongono di versioni che accettano come parametri di template un iteratore di input più debole, cui requisiti di funzionalità sono più minime rispetto a quelle garantite dalla classe di iteratori bidirezionali.I concetti di iteratore diversi costituiscono una famiglia correlata tramite perfezionamenti a livello di funzionalità.Ogni concetto dell'iteratore ha un proprio insieme di requisiti e gli algoritmi di utilizzarli è necessario limitare i presupposti per i requisiti di quel tipo di iteratore.Si può presumere che un iteratore di input può essere possibile risolvere i riferimenti per fare riferimento a un oggetto e che può essere incrementata l'iteratore successivo nella sequenza.Si tratta di un set minimo di funzionalità, ma è sufficiente per poter parlare in modo significativo un intervallo di iteratori [_First, _Last) nel contesto delle funzioni membro della classe.

La scelta del tipo di contenitore deve essere basata in generale al tipo di ricerca e inserimento richiesti dall'applicazione.Contenitori associativi sono ottimizzati per le operazioni di ricerca, inserimento e rimozione.Le funzioni membro che in modo esplicito supportano queste operazioni sono efficienti, li esegue in un tempo medio proporzionale al logaritmo del numero di elementi nel contenitore.Inserimento di elementi non invalida iteratori e la rimozione di elementi invalida solo gli iteratori che avevano in modo specifico a cui gli elementi rimossi.

Il multiset dovrebbe essere il contenitore di scelta quando le condizioni che associa i valori delle chiavi sono associativo soddisfa dall'applicazione.Gli elementi di un multiset potrebbero essere più e fungere dalle proprie chiavi di ordinamento, in modo che le chiavi non sono univoche.Il modello di questo tipo di struttura è un elenco ordinato di parole ad esempio, in cui le parole possono comparire più volte.Erano più occorrenze delle parole non state consentite, quindi sarebbe stato un insieme della struttura contenitore appropriato.Se le definizioni univoche fossero collegate come valori dell'elenco di parole chiave univoche, una mappa sarebbe una struttura per contenere i dati appropriata.Se invece le definizioni non univoche, un multimap sarebbe il contenitore di scelta.

Il multiset ordini la sequenza è controllato mediante la chiamata di un oggetto function stored di tipo Compare.Questo oggetto memorizzato è una funzione di confronto in cui è possibile accedere mediante la chiamata della funzione membro key_comp.In generale, gli elementi devono essere semplicemente meno comparabili per stabilire questo ordine: in modo che, dato i due elementi, può essere determinato che sono equivalenti (nel senso che nessuno dei due è minore rispetto a altro) o uno è minore rispetto a altro.Il risultato in un ordine tra gli elementi nonequivalent.In una nota di informazioni tecnica, la funzione di confronto è un predicato binario che induce un rigoroso ordine debole nel senso matematico standard.Un predicato binario f(x,y) è un oggetto di funzione che dispone di due oggetti di argomento x e y e un valore restituito di true o false.Un ordinamento imposto su un insieme è un debole rigoroso ordine se il predicato binario è transitivo Irriflessivo e antisimmetrici e se l'equivalenza è transitiva, in cui due oggetti, x e y sono definiti come equivalenti quando entrambi f(x, y) e f(y, x) sono false.Se la condizione più potente della parità tra le chiavi sostituisce quella di equivalenza, l'ordinamento diventa totale (nel senso che tutti gli elementi sono ordinati in base ai reciprocamente) e i tasti corrispondenti saranno indiscernible gli uni dagli altri.

w5txk7zc.collapse_all(it-it,VS.110).gifCostruttori

multiset

Costruisce un multiset è vuoto o è una copia di tutti o parte di un determinato multiset.

w5txk7zc.collapse_all(it-it,VS.110).gifDefinizioni typedef

allocator_type

Typedef per il allocator di classe per la multiset oggetto.

const_iterator

Typedef per un iteratore bidirezionale in grado di leggere un const elemento di multiset.

const_pointer

Typedef per un puntatore a un const elemento in un multiset.

const_reference

Typedef per un riferimento a un const elemento memorizzato un multiset per la lettura e l'esecuzione di const le operazioni.

const_reverse_iterator

Typedef per un iteratore bidirezionale in grado di leggere qualsiasi const elemento di multiset.

difference_type

Typedef un valore integer con segno per il numero di elementi di un multiset in un intervallo tra gli elementi a cui punta iteratori.

iteratore

Typedef per un iteratore bidirezionale in grado di leggere o modificare qualsiasi elemento in un multiset.

key_compare

Typedef per un oggetto di funzione che può confrontare due chiavi per determinare l'ordine relativo dei due elementi di multiset.

KEY_TYPE

Typedef per un oggetto di funzione che può confrontare due chiavi di ordinamento per determinare l'ordine relativo dei due elementi di multiset.

pointer

Typedef per un puntatore a un elemento in un multiset.

Riferimento

Typedef per un riferimento a un elemento memorizzato in un multiset.

reverse_iterator

Typedef per un iteratore bidirezionale in grado di leggere o modificare un elemento in un stornata multiset.

size_type

Un tipo di valore integer senza segno che può rappresentare il numero di elementi in un multiset.

value_compare

Typedef per un oggetto di funzione che può confrontare due elementi come chiavi di ordinamento per determinare l'ordine relativo nel multiset.

value_type

Typedef che descrive un oggetto archiviato come un elemento come un multiset in quanto un valore.

w5txk7zc.collapse_all(it-it,VS.110).gifMetodi

begin

Restituisce un iteratore che punta al primo elemento di multiset.

clear

Cancella tutti gli elementi di un multiset.

Conteggio

Restituisce il numero di elementi in un multiset cui chiave corrisponde alla chiave specificata come parametro.

empty

Verifica se un multiset è vuoto.

end

Restituisce un iteratore che punti al percorso dopo l'ultimo elemento in un multiset.

equal_range

Restituisce una coppia di iteratori.L'iteratore prima nei punti di coppia per il primo elemento di un multiset con una chiave che è maggiore di una chiave specificata.L'iteratore di secondo espressa in punti della coppia al primo elemento di multiset con una chiave che è uguale o superiore a quello della chiave.

Cancella (Erase)

Rimuove un elemento o un intervallo di elementi in un multiset da posizioni specificate o rimuove gli elementi corrispondono a una chiave specificata.

find

Restituisce un iteratore che punta alla prima posizione di un elemento in un multiset che ha una chiave uguale a una chiave specificata.

get_allocator

Restituisce una copia del allocator oggetto viene utilizzato per costruire il multiset.

Inserisci

Inserisce un elemento o un intervallo di elementi in un multiset.

key_comp

Fornisce un oggetto di funzione che può confrontare due chiavi di ordinamento per determinare l'ordine relativo dei due elementi di multiset.

lower_bound

Restituisce un iteratore per il primo elemento di un multiset con una chiave che è uguale o maggiore di una chiave specificata.

max_size

Restituisce la lunghezza massima del multiset.

rbegin

Restituisce un iteratore che punta al primo elemento in un stornata multiset.

rend

Restituisce un iteratore che punti al percorso che seguono l'ultimo elemento in un stornata multiset.

size

Restituisce il numero di elementi in un multiset.

scambio

Scambiare gli elementi di due multisets.

upper_bound

Restituisce un iteratore per il primo elemento di un multiset con una chiave che è maggiore di una chiave specificata.

value_comp

Recupera una copia dell'oggetto di confronto utilizzato per i valori di elementi di ordine in un multiset.

Requisiti

Intestazione: <set>

Spazio dei nomi: std

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Libreria di modelli standard

Altre risorse

membri di multi-insieme

<set> membri