これは可能ですか?STLマップでstd :: pairの代わりにカスタムクラスを使用できますか?
#include <map>
class Example {
private:
std::map<std::string, std::string, less<std::string>,
std::allocator< CustomPair<std::string, std::string> > > myMap;
};
上記の例では、CustomPairはキーと値を保持するテンプレートクラスです。これが可能であれば、それは簡単なのか、それとも私が見なければならないものがありますか?
この問題の主な問題は、順序が維持されるためにsetが一定の値を保持するため、CustomPairは2番目のメンバを変更可能にし、最初のメンバのみを使用するよう比較を強制する必要があります。 –
@Greg Rogersありがとう、答えに鍵の部分のconstnessを加えました。 – lothar
私はOPの意図が分かりませんでしたが、彼の質問は、<...>の代わりに、カスタムパラメータ<...>をテンプレートパラメータとしてstd :: allocatorに渡すことでした。これは質問に答えません。 – Ari