Ho visto alcuni post sulla famiglia di siti StackExchange che parlano di implementazioni di std :: vector. Sembrano tutti indicare che std :: vector è implementato rigorosamente come array (in pratica), e che C ++ 2003 detta la contiguità degli elementi - praticamente delle scappatoie non-array di chiusura.
Ora pensavo di aver letto una volta un'implementazione non-array di std :: vector - forse questo era precedente all'applicazione della contiguità nel 2003? (Modifica: Herb Sutter prende nota di questo qui ) Credo che fosse qualcosa come una serie di array collegati con dimensioni decrescenti o crescenti sotto il cofano, ma non riesco a ricordare i dettagli. Qualcuno sa delle implementazioni di std :: vector (o forse, più ampiamente, implementazioni vettoriali non STL) che usano un approccio non array come questo?
Modifica: vorrei chiarire qui che l'enfasi è meno sulla rigida implementazione di std :: vector per C ++ e piuttosto su 1) implementazioni STL storiche precedenti ai vincoli di elementi contigui di C ++ 2003 o forse addirittura 2) "vettore" implementazioni in altre lingue - che non usano la solita struttura ad array. Un'implementazione VList di un vettore potrebbe essere un potenziale esempio e sto cercando altri.