std::list
定期的にマージされるアイテム (グラフ コンポーネント構造) を構築します。アイデアは、2 つのコンポーネントを接続するノードを発見すると、それらが 1 つのコンポーネントになり、リストにコンポーネントが列挙されるというものです。std::list<component>::iterator
各コンポーネントには、マージされると設定される「親」コンポーネントへのハンドル (この場合は) があります。このように、特定のノードが属するコンポーネントを判別するには、このチェーンをたどります。
最後に、私が探しているのは、 item のイテレータを取り、それをリストから削除することを可能にする操作ですが、割り当てstd::list
を解除することはありません: リストの残りの構造は、普通に取り外します。N
できれば、アイテムを再割り当てし、リストからコピーして、実数remove
またはerase
.
おそらく私はそれを達成することができsplice
ます。削除する要素を「がらくた」にスプライスする必要がありlist
ますね。