Non puoi occupare meno spazio che in un vector, dato che esso semplicemente usa internamente un array stile C per gli elementi, un puntatore a tale array e due size_t per memorizzare capacity e size. Tutti gli altri container occupano più spazio.
Se sai in anticipo di quanti oggetti si parla puoi preallocare il vettore esattamente alla dimensione giusta (in modo che nel riallocare automaticamente non allochi più spazio del necessario), ma dubito che servirà a qualcosa; l'unica credo sia diminuire le dimensioni dei tuoi oggetti.