Ho un std :: vector che ho bisogno di ordinare per algoritmi selezionati per certe operazioni, ma per mantenere il suo stato originale (ad esempio, gli oggetti ordinati da quando sono stati inseriti) per il resto del tempo.Qual è un buon metodo per * temporaneamente * ordinare un vettore?
Ovviamente posso usare std :: copy per creare un vettore temporaneo e ordinarlo, ma mi chiedo se c'è un modo migliore, possibilmente con il timestamp degli elementi inseriti.
Acclamazioni
Perché? L'ordinamento è 'O (N log N)', per non parlare del fattore costante; copiare è direttamente 'N * sizeof (T)' scrive la memoria assumendo gli elementi POD. Inoltre potresti facilmente escludere il tempo di copia dall'analisi comparativa. – kennytm
Supponendo che gli elementi POD, la copia è tempo costante (suggerimento: pensare * memcpy *), e abbastanza veloce a quello. –
La copia non è un tempo costante, @Stingray. E 'acceso). –