Domanda

Come dice la domanda...Non capisco il punto multisetS / multimapS.

Allora, qual è lo scopo?

È stato utile?

Soluzione

Alcuni casi d'uso:

multimappa

  • Con il codice postale come chiave, tutte le persone che hanno quel codice postale
  • Con l'ID conto come chiave, tutti gli ordini aperti di quella persona/conto
  • Un dizionario, con varie spiegazioni per parola chiave

multiinsieme

è in sostanza una mappa con una chiave e un conteggio intero.

  • L'inventario di un negozio, tutti i prodotti hanno la loro chiave e l'importo ancora disponibile è il valore
  • Dati di vendita accumulati di un negozio, ogni volta che un prodotto viene venduto, l'ID prodotto viene aggiunto al multiset aumentando così l'importo venduto

Altri suggerimenti

Un esempio in cui un multimap sarebbe utile se si ha una situazione in cui la maggior parte del tempo i tasti sono unici, ma a volte non lo sono.

Ad esempio, se si vuole creare una classe cache che ha utilizzato un hash come chiave. Il più delle volte due oggetti diversi non avrà lo stesso hash, in modo che le chiavi saranno unici. Ma è possibile che si otterrà collisioni hash per oggetti diversi, in modo che si vorrebbe un multimap per coprire questa situazione.

Un altro esempio potrebbe essere qualsiasi tipo di indice non univoco (come in un database).

Per quanto riguarda un MultiSet - penso che quelli sarebbero meno utile. L'unica cosa che mi viene in mente sarebbe quello di usarlo come una sorta di lista ordinata automaticamente.

Un multinsieme o MultiMap è semplicemente per le situazioni in cui ci potrebbe essere più di uno di un elemento particolare. Per esempio, diciamo che si voleva creare un indice per un libro. Faresti la scansione attraverso il testo, buttare via tutte le parole in realtà comuni senza senso ( "a", "an", "il", ecc) e poi fare una lista di tutto il resto, e il posto nel libro in cui ogni si è verificato.

Un bel po 'delle parole appariranno in più di una pagina, nel qual caso si dovrà più voci mappatura da una parola a pagine diverse. Un modo per gestire che sarebbe un multimap dalle parole ai numeri di pagina.

http://www.cplusplus.com/reference/stl/multimap/

  

Le mappe sono una sorta di associativa   contenitori che memorizza elementi formati   dalla combinazione di un valore di chiave e   un valore mappato, molto simile mappa   contenitori, ma permettendo differente   elementi hanno lo stesso valore di chiave.

E 'sorta di registro in cui gli elementi possono condividere una chiave. Si può pensare di aziende e dipendenti. indirizzo è una chiave e dipendenti sono valori.

Ecco cosa Wikipedia dice di usi:

  
      
  • In un sistema di iscrizione degli studenti, dove gli studenti possono essere iscritti   più classi contemporaneamente, ci   potrebbe essere un'associazione per ciascun   iscrizione di uno studente in un corso,   dove la chiave è l'ID studente e   il valore è l'ID corso. Se un   studente è iscritto a tre corsi,   ci saranno tre associazioni   contenente la stessa chiave.
  •   
  • L'indice di un libro può segnalare qualsiasi numero di riferimenti per un determinato indice   termine, e quindi può essere codificata come   multimap da termini indice a qualsiasi   numero di posizioni di riferimento
  •   

Usa multimappa, ovunque si desidera utilizzare albero tipo di struttura.

Il più importante vantaggio di utilizzare un multiset su un vettore / lista (o qualsiasi altro contenitore) è la complessità temporale di un'operazione di ricerca. media complessità caso il tempo per multinsieme è O (log n) e unordered_multiset è O (1). Lo stesso vale per multimap e ordered_multimap.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top