将列表元素移动到STL中的末尾

时间:2011-02-06 08:37:11

标签: c++ list stl

我已经有了CDrawObject *

的列表指针
std::list<CDrawObject*> elements;

如何将某个元素移动到列表末尾。 我看到STL Algorithms Reference但我找不到这个操作。我怎么能这样做?

3 个答案:

答案 0 :(得分:56)

使用list方法splice()

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

将迭代器i从列表x移动到位置“position”的当前列表

因此将其移至最后

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

(只要移动项目的列表具有相同的类型,T和分配器,它们都可以是相同的列表或不同的列表)

答案 1 :(得分:4)

std::list是双向链接列表,这意味着您无法随机访问元素n。你必须可以删除元素,然后使用push_back

答案 2 :(得分:-1)

将其删除,然后将其附加到您的列表中。