一意でないキーと値のペアを格納するソリューションが必要です。キーを繰り返したくない (スペース効率) と、ルックアップ速度に集中したい (新しいデータを挿入する効率はそれほど重要ではありません)。ここでは std::multimap を使用します。ただし、いくつかの範囲基準を満たすキーを検索する必要があります。
最も複雑な例: キーは文字列で、値は重要ではありません。「Lol」で始まるすべての値を調べたいと思います。または、キーが「bar」と「foo」の間にあるすべての値を見つけたいと思います。
マルチマップでできますか?私の 2 番目の考えは、値のベクトルを指す、並べ替えられたベクトルを使用することです。そんな感じ:
std::vector<std::string, std::vector<T>> sorted_vec;
そうすれば、検索条件を簡単に満たすことができます。しかし、私はルックアップのパフォーマンスを本当に気にしています。それは正しいアプローチですか?