Я только заметил, что для vector push_back это возвращает ссылку на элемент.Один вопрос о vector push_back
void push_back (const T& x);
Мой вопрос заключается в том, что макет памяти изменился после push_back?
Например, у меня есть массив, который содержит пять элементов и макет.
| | | | | |
| A1 | A2 | A3 | A4 | A5 |
Теперь у меня есть вектор Ú
v.push_back(A3)
Теперь, как же память выглядеть?
Как вектор хранит элементы здесь?
Как вектор получает доступ к элементу?
Посмотрите на вектор :: резерв и вектор :: емкость относительно макета памяти. Имейте в виду, что, поскольку распределение памяти может измениться, любые итераторы, которые у вас были до вызова push_back, становятся недействительными после изменения содержимого вектора. –