Я только что видел в учебнике, кто раньше в том же файле как:C++ вектор push_back()
myVector.back().push_back();
myVector.push_back();
В чем разница?
Я только что видел в учебнике, кто раньше в том же файле как:C++ вектор push_back()
myVector.back().push_back();
myVector.push_back();
В чем разница?
Первое должно было быть что-то вроде
vector<vector<T>>
В противном случае он не будет работать. back()
возвращает элемент в конце vector
. Когда вы говорите
myVector.back().push_back();
было бы получить доступ к последним vector<T>
, то вызов push_back()
на этой внутренней vector
Если это так, что myVector
является vector<vector<T>>
, то
myVector.push_back();
будет отбрасывание пустого vector<T>
, тогда как
myVector.back().push_back();
будет отбрасывать по умолчанию T
на последние vector<T>
в myVector
.
myVector may be a std::vector<std::vector<T>>
В моем случае myVector - это вектор, содержащий класс –
В этом случае 'back()' возвращает экземпляр вашего класса, который был последним элементом в 'vector'. Поэтому, если ваш класс не имеет метода 'push_back()', тогда первая версия не будет компилироваться. – CoryKramer
Итак, если я правильно понял, назад() указывает последний элемент в векторе, а затем push_back() добавляет что-то в конец этого элемента. –