[英]std::advance of std::multimap end() iterator by negative number crashes
[英]std::multimap error when calling end()
如何检查多图的元素是否存在?
使用此代码:
typedef std::multimap<std::string, std::string> TagVal;
TagVal tv;
//... add values to tv ...
TagVal::const_iterator it = tv.find("abc");
if(it == TagVal::end()) // <--- ERROR
cerr << "Error";
我收到以下编译时错误:
错误:无法在没有对象的情况下调用成员函数'std :: multimap <...> :: iterator std :: multimap <...> :: end()...。
平台:Linux,GCC 4.5.1
原因是end
不是静态方法,必须在您从中获得迭代器的对象上调用end
:
if(it == tv.end())
cerr << "Error";
由于您已将tv
初始化为
TagVal tv;
您必须按以下方式调用multimap类的end()函数:
it == tv.end()
因为end()是在该对象上调用的,所以它不是静态方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.