最適な C 11 標準ライブラリ コンテナの選択
古典的な「C コンテナの選択」チートシートは、特定の使用シナリオに適切なコンテナを選択するためのガイダンスを提供します。ただし、C 11 の更新バージョンはありません。
それを補うために、コンテナの選択を支援するテキストのワークフローを次に示します。
1.セマンティクスを優先
連想コンテナ:
- 単一キーによる検索が必要な場合は、連想コンテナを使用します。
- 並べ替えを維持するには順序付けされたコンテナを選択してください
- 個別のキーと値のペアの場合は、Map を使用します。キーのみの場合は、Set を検討してください。
- 「複数」プレフィックスを使用した重複を有効にします。
単純なシーケンス コンテナ:
- 選択以下に基づいて適切なコンテナを選択します。基準:
2.メモリの安定性
- コンテナの変更中に要素をメモリ内に残す必要がある場合は、リストを使用します。
- デフォルトはリストです。 Forward_List はメモリ使用量を削減する場合にのみ使用してください。
3.動的サイズ設定
- サイズがコンパイル時に既知で一定のままであり、要素がデフォルトで構築可能であるか中括弧を使用して初期化されている場合は、配列を使用します。
4.両端
- 両端に項目を追加または削除する必要がある場合は、Deque を選択します。
- それ以外の場合は、Vector を選択します。
例
シナリオ: 一意のデータに基づいて個人データを取得するID。
- 検索機能が必要です (連想コンテナ)。
- 順序は無関係です (順序なし)。
- キー (ID) は値 (マップ) とは別です。 .
- 重複なし (いいえ) "multi").
結果: std::unowned_map.
注: 特定の制約がない場合適用する場合、単純なシーケンス コンテナーのデフォルトの選択肢として Vector をお勧めします。
以上がどの C 11 標準ライブラリ コンテナを使用すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。