c++ : domanda su std::map
c++ : domanda su std::map
C'è qualche controindicazione ad usare un tipo puntatore come chiave di una mappa?
-
Dahman
- Entusiasta Emergente

- Messaggi: 1013
- Iscrizione: mercoledì 31 ottobre 2007, 8:29
- Località: Torino
Re: c++ : domanda su std::map
Non che sappia io, anzi, nella maggior parte dei casi é più conveniente, soprattutto se l'oggetto chiave é "grosso": minor risorse e ricerca più veloce.
Bisogna solo aver ben chiaro il concetto dell'ownership del puntatore.
Questo in generale altrimenti bisogna vedere cosa intendi fare per dire qualcosa in più.
Ciao
Dahman
Bisogna solo aver ben chiaro il concetto dell'ownership del puntatore.
Questo in generale altrimenti bisogna vedere cosa intendi fare per dire qualcosa in più.
Ciao
Dahman
Re: c++ : domanda su std::map
Ho un grosso numero (da migliaia a milioni) di oggetti e devo sapere in tempi brevi se un certo oggetto rispetta certi requisiti.
Questo lo so nel momento in cui l'oggetto viene allocato, ma non mi piace la soluzione (efficiente ma intrusiva) di aggiungere un campo alla classe per prenderne nota, perché la stessa classe la uso anche in altri ambiti, dove quel campo non servirebbe a nulla.
Sia Pippo la classe dell'oggetto. Pensavo di fare una map e gestire il contenuto unsigned int a maschera di bit per prendervi nota di ciò che mi interessa.
Questo lo so nel momento in cui l'oggetto viene allocato, ma non mi piace la soluzione (efficiente ma intrusiva) di aggiungere un campo alla classe per prenderne nota, perché la stessa classe la uso anche in altri ambiti, dove quel campo non servirebbe a nulla.
Sia Pippo la classe dell'oggetto. Pensavo di fare una map e gestire il contenuto unsigned int a maschera di bit per prendervi nota di ciò che mi interessa.
-
Dahman
- Entusiasta Emergente

- Messaggi: 1013
- Iscrizione: mercoledì 31 ottobre 2007, 8:29
- Località: Torino
Re: c++ : domanda su std::map
In linea di massima la std::map va bene, é abbastanza veloce (tempi di ricerca O(log n)), ma dipende quanto sarà frequente questa ricerca e cosa intendi per tempi brevi (per millioni di oggetti molto difficile avere la risposta in tempo reale)Ho un grosso numero (da migliaia a milioni) di oggetti e devo sapere in tempi brevi se un certo oggetto rispetta certi requisiti.
Perché non derivi la tua classe dalla classe Pippo e ci aggiungi il campo che vuoi?Questo lo so nel momento in cui l'oggetto viene allocato, ma non mi piace la soluzione (efficiente ma intrusiva) di aggiungere un campo alla classe per prenderne nota, perché la stessa classe la uso anche in altri ambiti, dove quel campo non servirebbe a nulla.
Ciao
Dahman
Re: c++ : domanda su std::map
Sì, in effetti questa è un'altra possibilità, efficiente e non intrusiva, anche se esteticamente insoddisfacente per i miei gusti.Dahman ha scritto:In linea di massima la std::map va bene, é abbastanza veloce (tempi di ricerca O(log n)), ma dipende quanto sarà frequente questa ricerca e cosa intendi per tempi brevi (per millioni di oggetti molto difficile avere la risposta in tempo reale)Ho un grosso numero (da migliaia a milioni) di oggetti e devo sapere in tempi brevi se un certo oggetto rispetta certi requisiti.Perché non derivi la tua classe dalla classe Pippo e ci aggiungi il campo che vuoi?Questo lo so nel momento in cui l'oggetto viene allocato, ma non mi piace la soluzione (efficiente ma intrusiva) di aggiungere un campo alla classe per prenderne nota, perché la stessa classe la uso anche in altri ambiti, dove quel campo non servirebbe a nulla.
Grazie, ciao
Re: c++ : domanda su std::map
Fatta prova, la differenza di tempo di esecuzione è impressionante. Scelgo la soluzione non esteticamente soddisfacente. 
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti
