?
Потому что vector это не stack
Есть front, back, вытащил и удаляй как и у list
std::stack::pop тоже не возвращает значение
это понятно, но почему нет метода который бы так сразу делал в std? как в java, ruby, python, etc
Это с++ привыкай
Если захочется после осознания, что это O(N)
https://stackoverflow.com/questions/25035691/why-doesnt-stdqueuepop-return-value
это не ответ
а разве тогда проводиться realloc ?
Тогда используй list там за константу эти операции
смещение происходит на место удаленного всех оставшихся в векторе элементов
А если с конца то тоже будет пересчет?
нет, если с конца то никакого смещения не будет
Используй list
Почему должно быть как в Java? На самом деле из-за сложности этой операции, она O(n)
Из-за безопасности исключений. В этом случае нельзя гарантировать, что вектор останется в прошлом состоянии, если там эксепшн вылетит
добавлю ссылочку с таймкодом, если никто не против https://www.youtube.com/watch?v=d0iqsUx_Aow&t=1750s
Все ещё хочется и тоже не понимаю, почему нет
А что если с новыми requires сделать так, чтобы pop возвращал значение если copy/move конструктор noexcept?
Ну такое себе. Так и сейчас можно
Обсуждают сегодня