プラットフォームに依存しないモデル レイヤーの場合、次のような階層データ (実際には文字列) があります。
- アイテムA
- サブアイテム A
- サブアイテム B
- サブアイテム C
- サブサブアイテム A
- サブサブアイテム B
- サブアイテム D
- アイテムB
- アイテムC
ここで、各「レベル」(Item、SubItem、SubSubItem など) 内で、アイテムをアルファベット順に並べ替える必要があります。
簡単な解決策は、並べ替えられた std::Vector または std::MultiMap を使用して単純なクラスを作成し、その子を追跡し、その親へのポインターを作成することです。(および 1 つのルート項目)。一般に、各アイテムの子を順方向に反復処理する必要があります。
構築/ソート後、アイテムを追加または削除する必要はありません。通常、アイテムの数は少ない (数百)。
これは、アウトライン スタイル コントロールのバッキング データのモデル編成用です。
単純なクラスをローリングするのは簡単ですが、これは非常に一般的なパターンです — この動作を備えた既製の STL コンテナーが既に存在するのではないでしょうか?