異なるデータ型の 2 つのキーを持つことができるが、同じ構造体を指すマップが必要です。
struct DataStruct {
SomeEnum keyEnum; // <---- key as enum
std::string keyString; // <----- a key as a string
int arbitrarydata;
int moredata;
}
次に、次のstd::map
ように検索できるようにします。
std::map<SomeEnum||std::string, DataStruct> dataMap;
dataMap[SomeEnum::AValue] = dataStruct1;
dataMap["mykey"] = dataStruct2;
これは可能ですか、それとも 2 つのマップを作成する必要がありますか? 無駄に思えます。または、演算子などをオーバーロードする必要がありますか?