在 C++11 中是否有任何简单/优雅的方式,通过 STL 或 boost,使元素类型“智能”,以便它的实例始终知道它属于哪个容器并具有一种“自动”的成员函数-removal”,它还负责更新它所属的容器?
真实情况是,在给定请求完成后,我调用了一个回调 C 函数(来自 C 库)。此函数接受指向已处理元素的原始指针。现在我想要的是从它所属的列表中删除这个元素并将其移动到另一个列表中。
我知道我可以将指向容器的指针存储在元素本身中,当调用回调时,我可以遍历该容器,直到找到元素,然后将其删除并调用newlist.push_back(object)
. 鉴于一个元素必须存在于一个容器中(并且只有一个),我想知道是否有更优雅的东西。