私たちは、ルールはルールの私の場合はunordered_multimap <string、string>をマップする<string、string>ソフト検索、早い検索のためにプリプロセスされたマップをどのようにするか?
struct rules
{
boost::unordered_multimap<string, string> set_of_rules_1;
boost::unordered_multimap<string, string> set_of_rules_2;
}
あるmap<boost::shared_ptr<service>, rules> service_map
は、私たちがAccept-Language : FR
とAccept-Language : US
を見つけることができるそのようなunordered_multimapで例えばHTTPリクエストheaders
とarguments
のからペア、ですしています。
各boost::shared_ptr<service>
は、service class
を継承するクラスのインスタンスです。
私はサービスとルール(いくつかの共有ライブラリといくつかのルール付きテキストファイルから)でフライでルールを< - >このサービスマップに記入します。
今、私は私がservice_map
から最も関連性の高いservice
を見つけて、ここでは、そのルールに合うものを意味し、関連することでそのservice->inherited_method();
を呼び出す必要が与えられたそれぞれのdata
オブジェクトについてdata
struct data
{
map<string, string> headers;
map<string, string> arguments;
}
のインスタンスを与えられています与えられたデータがほとんどです。たとえば、Accept-Language : FR
とのルールにデータが含まれている場合よりも、Accept-Language : fr-FR,ru;q=0.8,en-US;q=0.6,en;q=0.4
が適切と考えられます。
私のservice_mapを高速処理し、そのような検索を実装する方法を前処理するにはどうすればよいでしょうか?
これはAccept-Languageについてのみですか、それとも一致させるための他のディメンションがありますか?実際のコンセプトや予想されるデータのバリエーションについては、C++の詳細や詳細についてはあまり話題にはなりません。 –