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.
Costruttori
Costruisce un multiset è vuoto o è una copia di tutti o parte di un determinato multiset. |
Definizioni typedef
Typedef per il allocator di classe per la multiset oggetto. |
|
Typedef per un iteratore bidirezionale in grado di leggere un const elemento di multiset. |
|
Typedef per un puntatore a un const elemento in un multiset. |
|
Typedef per un riferimento a un const elemento memorizzato un multiset per la lettura e l'esecuzione di const le operazioni. |
|
Typedef per un iteratore bidirezionale in grado di leggere qualsiasi const elemento di multiset. |
|
Typedef un valore integer con segno per il numero di elementi di un multiset in un intervallo tra gli elementi a cui punta iteratori. |
|
Typedef per un iteratore bidirezionale in grado di leggere o modificare qualsiasi elemento in un multiset. |
|
Typedef per un oggetto di funzione che può confrontare due chiavi per determinare l'ordine relativo dei due elementi di multiset. |
|
Typedef per un oggetto di funzione che può confrontare due chiavi di ordinamento per determinare l'ordine relativo dei due elementi di multiset. |
|
Typedef per un puntatore a un elemento in un multiset. |
|
Typedef per un riferimento a un elemento memorizzato in un multiset. |
|
Typedef per un iteratore bidirezionale in grado di leggere o modificare un elemento in un stornata multiset. |
|
Un tipo di valore integer senza segno che può rappresentare il numero di elementi in un multiset. |
|
Typedef per un oggetto di funzione che può confrontare due elementi come chiavi di ordinamento per determinare l'ordine relativo nel multiset. |
|
Typedef che descrive un oggetto archiviato come un elemento come un multiset in quanto un valore. |
Metodi
Restituisce un iteratore che punta al primo elemento di multiset. |
|
Cancella tutti gli elementi di un multiset. |
|
Restituisce il numero di elementi in un multiset cui chiave corrisponde alla chiave specificata come parametro. |
|
Verifica se un multiset è vuoto. |
|
Restituisce un iteratore che punti al percorso dopo l'ultimo elemento in un multiset. |
|
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. |
|
Rimuove un elemento o un intervallo di elementi in un multiset da posizioni specificate o rimuove gli elementi corrispondono a una chiave specificata. |
|
Restituisce un iteratore che punta alla prima posizione di un elemento in un multiset che ha una chiave uguale a una chiave specificata. |
|
Restituisce una copia del allocator oggetto viene utilizzato per costruire il multiset. |
|
Inserisce un elemento o un intervallo di elementi in un multiset. |
|
Fornisce un oggetto di funzione che può confrontare due chiavi di ordinamento per determinare l'ordine relativo dei due elementi di multiset. |
|
Restituisce un iteratore per il primo elemento di un multiset con una chiave che è uguale o maggiore di una chiave specificata. |
|
Restituisce la lunghezza massima del multiset. |
|
Restituisce un iteratore che punta al primo elemento in un stornata multiset. |
|
Restituisce un iteratore che punti al percorso che seguono l'ultimo elemento in un stornata multiset. |
|
Restituisce il numero di elementi in un multiset. |
|
Scambiare gli elementi di due multisets. |
|
Restituisce un iteratore per il primo elemento di un multiset con una chiave che è maggiore di una chiave specificata. |
|
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