我构建了一个std::list
定期合并在一起的项目(图形组件结构)。这个想法是,如果我发现一个连接两个组件的节点,它们将成为一个单独的组件,并且我的列表会枚举我的组件。每个组件都有一个std::list<component>::iterator
指向其“父”组件的句柄(在本例中为 ),该句柄在合并后设置。通过这种方式确定特定节点所属的组件,我沿着这条链走。
最后,我正在寻找的是std::list
允许我获取 item 的迭代器N
并将其从列表中删除但不释放它的操作:列表其余部分的结构的修改方式与正常删除它。
最好是比重新分配项目、从列表中复制它并调用真实的remove
或erase
.
也许我可以用splice
. 我需要将要删除的元素拼接成“垃圾” list
,不是吗?