Подтвердить что ты не робот

Переместить элемент списка в конец в STL

У меня уже указатель списка CDrawObject *

std::list<CDrawObject*> elements;

Как я могу переместить некоторый элемент в конец списка. Я вижу Справочник по алгоритмам STL, но я не нахожу эти операции. Как я могу это сделать?

4b9b3361

Ответ 1

Используйте метод list splice()

void list::splice ( iterator position, list<T,Allocator>& x, iterator i );

Переместите итератор я из списка x в текущий список в позиции "позиция"

Таким образом, чтобы переместить его до конца, поместите

x.splice( x.end(), x, iter );

(они могут быть одним и тем же списком или разными списками, если список, из которого перемещается элемент, имеет один и тот же тип, как T, так и Allocator)

Ответ 2

A std::list - это двусвязный список, что означает, что у вас нет случайного доступа к элементу n. Вы должны удалить элемент, а затем использовать push_back.

Ответ 3

Удалите его, затем добавьте в свой список.