Originariamente inviato da GliderKite
In realtà non è proprio un raddoppio delle dimensioni, ma anche fosse ciò non toglie che più cerchi rapidità più ti dovresti allontanare dall'utilizzo di un vector. Senza considerare se se le dimensioni sono piuttosto considerevoli reallocare uno spazio simile richiede risorse davvero eccessive per qualsiasi operazione direi. Ovvio che se conosci a priori il numero di elementi ridimensionare il vettore all'inizio è una valida alternativa, ma anche in questo caso una resize è più dispendiosa di un'allocazione "standard" con new/malloc (inizializzando anche gli elementi del vettore a 0, operazione che se necessaria viene svolta molto più velocemente dalla memset).

In definitiva i vector vanno molto bene per compiti per i quali sono stati pensati, ossia per i casi più generali possibili quindi niente a che vedere con operazioni specifiche e volutamente performanti.

Stack, queue e strutture dati analoghe implementate attraverso l'utilizzo di liste concatenate richiedono una maggior analisi precedente per verificare se effettivamente possono avere vantaggi rispetto all'utilizzo di un vettore. Quindi dipende sempre da cosa si deve effettivamente fare, come sempre d'altronde.
Leggendovi si nota il vostro immenso scibile in questo campo!
Però io che sono molto a digiuno non riesco a "implementare" il vostro sapere.

Potete farmi un. es. banale per velocizzare ad esempio questa operazione:

codice:
ritardi.push_back(ritardo);
dove ritardi ha solo 2 posizioni (indici) [0] e [1] e sono tutti valori interi da 0 a 4000.

Come trasformereste questa riga con le vostre spettacolari e praticissime velocizzazioni?

Ancora Grazie Infinite a tutti