0

如何检查多图的元素是否存在?
使用此代码:

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

4

2 回答 2

3

原因是它end不是一个静态方法,它必须在你得到迭代器的对象上调用:

if(it == tv.end())
    cerr << "Error";
于 2012-05-23T10:33:08.443 回答
1

因为你已经初始化tv

TagVal tv;

你必须调用 multimap 类的 end() 函数:

it == tv.end()

因为在该对象上调用 end() 并且它不是静态方法。

于 2012-05-23T10:35:22.240 回答