これが間違ったサイトである場合は事前にお詫びします。間違っている場合はお知らせください。
特定のキーが存在するかどうかを確認する関数を作成し、std::map
これを使用するのが良い方法であるかどうか、そして誰もが改善への指針を投げることができるかどうか疑問に思いました。
では、値として複数のstd::map
データ型を受け入れることができます。
union Variants {
int asInt;
char* asStr;
Variants(int in) { asInt = in; }
Variants() { asInt = 0;}
Variants(char* in) { asStr = in; }
operator int() { return asInt; }
operator char*() { return asStr; }
};
template<typename T, typename Y>
bool in_map(T value, std::map<T, Y> &map)
{
if(map.find(value) == map.end()) {
return false;
}else{
return true;
}
}
そして、メインで次のものを使用できます。
std::map<string, Variants> attributes;
attributes["value1"] = 101;
attributes["value2"] = "Hello, world";
if(in_map<std::string, Variants>("value1", attributes))
{
std::cout << "Yes, exists!";
}
どんな助けやアドバイスも大歓迎です。これが規則や基準に準拠していない場合は申し訳ありません。ありがとう!