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'
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'
的类型dic::key
是string
,并且您试图将其与NULL == 0
未实现的整数 ( ) 进行比较。您需要检查字符串是否为空:
while (!H[h].key.empty()) {
...
}
元素的键是一个字符串。您不能将字符串与它进行比较,NULL
因为它是对象而不是指针。宏 NULL 很可能被定义为指针或 int 值,它们都不能与字符串相媲美。
宏NULL
通常定义为0
or (void *) 0
,当与 a 进行比较时,这些值都不能使用std::string
(当然,除非您实现了自己的自定义比较运算符,但您不应该这样做)。
如果要检查字符串是否为空,请使用std::string::empty
.
也许你想说:
if (H[h].key.empty()) { ... }