C ++测试是否存在map元素

时间:2015-03-21 03:03:56

标签: c++

我有一个"阵列"字符串定义如下:

typedef map<int, string> strArr;

每当我这样做时:

strArr args;
if(!args[1]) { /*do stuff*/ }

编译器告诉我那里有no match for 'operator!'为什么会这样,我该如何解决这个问题?

修改 有没有办法使用bool operator! ()!

来完成这项工作

1 个答案:

答案 0 :(得分:5)

使用!args[1],您尝试在operator!上致电std::string,实际上,错误消息是正确的:std::string没有{{1} }}

要检查operator!中是否存在元素,请使用find。如果指定的键不在地图中,它将返回std::map

std::map::end