0
struct dic
{
    string key;
    int code;
};
dic H[71];

现在在-statementkey的条件下使用会给我一个错误。while

while ((H[h].key)!= NULL)
{

}

我得到的错误是:

error: no match for 'operator!=' in 'H[h].dic::key != 0'
4

4 回答 4

1

的类型dic::keystring,并且您试图将其与NULL == 0未实现的整数 ( ) 进行比较。您需要检查字符串是否为空:

while (!H[h].key.empty()) {
   ...
}
于 2013-10-25T08:56:45.930 回答
0

元素的键是一个字符串。您不能将字符串与它进行比较,NULL因为它是对象而不是指针。宏 NULL 很可能被定义为指针或 int 值,它们都不能与字符串相媲美。

于 2013-10-25T08:57:00.523 回答
0

NULL通常定义为0or (void *) 0,当与 a 进行比较时,这些值都不能使用std::string(当然,除非您实现了自己的自定义比较运算符,但您不应该这样做)。

如果要检查字符串是否为空,请使用std::string::empty.

于 2013-10-25T08:57:26.723 回答
0

也许你想说:

if (H[h].key.empty()) { ... }
于 2013-10-25T08:57:46.730 回答