Нет, вы не можете, извините.
pop_back()
не имеет результата (void
), поэтому его нельзя использовать в качестве параметра для push_back()
.
(https://en.cppreference.com/w/cpp/container/deque/pop_back). )
Может быть лучше вызвать back()
и сохранить результат в переменной; затем вызовите pop_back()
.
Повторите ту же процедуру со второй переменной, а затем дважды вызовите push_back()
с первой и второй переменной.
ах?!?! вопрос только что изменился.
Проблема та же, что и у pop_front()
, который имеет void
результат.
Чтобы поменять местами первый и последний элемент, вы можете использовать std::swap(deque.front(), deque.back())
.
Если вы абсолютно хотите использовать push/pop
функции, тогда:
- используйте
back()
и запомните значение в первой переменной - используйте
pop_back()
, - используйте
front()
и запишите значение во вторую переменную, - используйте
pop_front()
, - используйте
push_front()
с первой переменной , - используйте
push_back()
со второй переменной,
, но это решение намного сложнее, чем std::swap()
.
Конечно, для всего этого , вы должны убедиться, что в deque достаточно элементов: как минимум один для решения std::swap()
, как минимум два для решения push/pop
.