如何检查多图的元素是否存在? 使用此代码:
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&lt; ...&gt; :: iterator std :: multimap&lt; ...&gt; :: end()... 没有对象。
平台:Linux,GCC 4.5.1
答案 0 :(得分:3)
原因是end
不是静态方法,必须在你得到迭代器的对象上调用它:
if(it == tv.end())
cerr << "Error";
答案 1 :(得分:1)
因为您已将tv
初始化为
TagVal tv;
你必须调用multimap类的end()函数:
it == tv.end()
因为在该对象上调用end()并且它不是静态方法。