挂钩“聪明”的元素

时间:2013-03-03 20:55:28

标签: c++ boost c++11

在C ++ 11中是否有任何简单/优雅的方式,通过STL或boost,使元素类型“智能”,以便它的实例始终知道它属于哪个容器并具有排序的成员函数“自动删除”还负责更新它所属的容器?

真实情况是我在给定的请求完成后调用了一个回调C函数(来自C库)。此函数接受指向已处理元素的原始指针。现在我想要的是从它所属的列表中删除该元素并将其移动到另一个列表。

我知道我可以在元素本身中存储一个指向容器的指针,当调用回调时,我可以迭代该容器,直到找到该元素,然后将其删除并调用newlist.push_back(object)。鉴于一个元素必须存在于一个容器中(并且只有一个容器),我想知道是否有更优雅的东西。

1 个答案:

答案 0 :(得分:1)

Boost的intrusive containers实现了该功能。

但是,这需要特定的容器以及专门设计用于容器的对象。