次のようなクエリを使用してレコードを検索するために、データベースでインデックスが使用されるのと同じ方法を使用する STL、ブースト、または同様のコンテナーを探しています。
select * from table1 where field1 starting with 'X';
また
select * from table1 where field1 like 'X%';
std::map を使用することを考えましたが、「等しい」フィールドではなく、「で始まる」フィールドを検索する必要があるため、使用できません。それに加えて、複数のフィールドで動作する必要があるため (たとえば、各「レコード」には 6 つのフィールドがあります)、それぞれに個別の std::map が必要になります。
ソートされたベクトルまたはリストを作成し、バイナリ検索を使用することもできます (各ステップでセットを 2 つに分けて、中央の要素を読み取り、それが「X」より大きいか小さいかを確認します)。車輪を再発明せずに使用できるコンテナーを作成しましたか?