Глубокая копия означает весь контейнер, а не элементы. В связи с этим, после предложения, которое вы цитировали, QVector использует неявное совместное использование , также известное как копирование при записи. Копии контейнера, доступные только для чтения, дешевы, так как внутренние ресурсы являются общими, пока одна из копий не будет изменена:
QVector<A> vec1;
...
QVector<A> vec2 = vec1; //cheap, only copies a pointer internally. vec1 and vec2
int siz2 = vec2.size(); //cheap, doesn't modify vec2, vec1 and vec2 are still the same object, internally
vec2[0] = something; //potentially expensive: modifies vec2, thus vec2 "detaches" from vec1, getting its own copy of vec1's internal data, which is then modified by the assignment.
Это также причина, по которой создание контейнеров в куче является довольно бессмысленным (и недиоматическим) почти во всех случаях, и вы должны создавать их в стеке.