我有一个"阵列"字符串定义如下:
typedef map<int, string> strArr;
每当我这样做时:
strArr args;
if(!args[1]) { /*do stuff*/ }
编译器告诉我那里有no match for 'operator!'
为什么会这样,我该如何解决这个问题?
修改
有没有办法使用bool operator! ()!
答案 0 :(得分:5)
使用!args[1]
,您尝试在operator!
上致电std::string
,实际上,错误消息是正确的:std::string
没有{{1} }}
要检查operator!
中是否存在元素,请使用find
。如果指定的键不在地图中,它将返回std::map
:
std::map::end