Sto cercando di ottimizzare una routine C++. Il collo di bottiglia principale in questa routine è il push_back() di un vettore di oggetti. Ho provato ad usare un deque e ho anche provato una lista. Ma stranamente (e contrariamente alla teoria) la deque e l'implementazione delle liste funzionano molto più lentamente della controparte vettoriale.push_back per vettore, deque e liste
Infatti anche clear() è molto più lento per la deque e elenca le implementazioni rispetto alla controparte vettoriale. Anche in questo caso, l'implementazione vettoriale sembra essere la più veloce mentre l'implementazione delle liste è la più lenta.
Eventuali suggerimenti?
Nota: vector reserve() potrebbe avere accelerato l'implementazione ma non può essere eseguito in quanto non è noto nelle dimensioni.
Grazie.
Un'altra nota: i risultati sono simili anche per push_back e il vettore è il più veloce e l'elenco è il più lento. – Vidya
Cosa stai cercando di respingere? È costoso da copiare? Ha un costoso costruttore di copie? Pubblica più dettagli. –
Se la copia è costosa e si dispone di una funzione di "scambio", è possibile evitare alcune copie (vedere la risposta) – Rexxar