我想在容器中交换两个迭代器first
和second
的位置,并在操作后保持它们有效。此外,如果我让迭代器other
指向与first
相同的值,我也希望它保持有效(让它指向相同的值)。是否可以使用任何STL容器实现?
答案 0 :(得分:2)
你尝试过交换它们吗?
#include <algorithm>
// ...
swap(first, second);
(在C ++ 0x中,#include
标题<utility>
明显更小就足够了。)
此外,如果我将迭代器
other
指向与first
相同的值,我也希望它保持有效(保持指向相同的值)。
交换后重新分配other
:
swap(first, second);
other = first;
答案 1 :(得分:0)
std::list
允许您将一个列表的一个列表拼接成另一个列表(从第一个列表中删除它),而不会使任何迭代器,引用或指针无效,并且源列表和目标列表可以是同一个对象。 / p>
(这是根据C ++ 11标准草案;我不知道C ++ 03标准是否说同样的事情。)