如果这是错误的网站,请提前道歉,如果是,请告诉我!
我编写了一个函数,用于检查某个键是否存在于某个特定对象中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!";
}
任何帮助或建议将不胜感激。抱歉,如果这不符合规则或标准。谢谢!