C'è un modo per ridurre la capacità di un vettore?ridurre la capacità di un vettore stl
Il mio codice inserisce valori in un vettore (non conoscendo il loro numero in anticipo) e al termine, i vettori vengono utilizzati solo per le operazioni di lettura.
Immagino di poter creare un nuovo vettore, eseguire un .reseve() con le dimensioni e copiare gli elementi , ma non mi piace l'operazione di copia aggiuntiva.
PS: Non mi interessa una soluzione portatile, a patto che funzioni per gcc.
Solo una nota, riserva() non necessariamente riserva l'importo esatto si passa ad esso; riserva un importo maggiore o uguale all'importo che passi per prenotare(). – DeadHead
Si noti che l'idioma swap esegue una copia. Non so se GCC ha un'estensione per rilasciare la memoria riservata inutilizzata. Secondo me, un tale metodo dovrebbe essere nello standard per il vettore <>. –
Considera l'utilizzo di una deque anziché di un vettore. È quasi veloce quanto il vettore, ma non conserva i dati in blocchi contigui e non ha bisogno di riserva() – Wacek