Ho una serie di puntatori. Nel primo passaggio, inserisco i puntatori di dati e, nella seconda fase, eseguo l'iterazione sull'intero insieme e faccio qualcosa con gli elementi. L'ordine non è importante, ho solo bisogno di evitare i duplicati, che funziona bene con il confronto dei puntatori.Devo usare std :: set o std :: unordered_set per un set di puntatori?
La mia domanda è, se potrebbe essere vantaggioso utilizzare un set non ordinato per lo stesso scopo. L'inserimento è più veloce per un set non ordinato?
"L'ordine non è importante" - una volta deciso, usa 'unordered_set'. L'unico svantaggio di contenitori ordinati è ... l'ordine. –
Di quanti elementi stiamo parlando? E fai un lavoro intensivo di calcolo su ogni oggetto o è più come sommare/moltiplicare tutti gli elementi? – MikeMB
I contenitori ordinati hanno un altro importante vantaggio è che può garantire che il tempo per ogni operazione sia O (lg n) mentre quelli non ordinati richiedono O (n) nel caso peggiore. Quindi se vuoi fare promesse sulla complicità, usa std :: set. – James