如何检查链表列表中的某个链表是否为空

时间:2013-11-06 06:32:42

标签: c++ arrays linked-list

使用这种数据结构:(一系列双向链表)

list<string> hashTable [HASH_TABLE_SIZE];

我想使用以下方法检查某个链表是否为空:

Hash HashTable;

if(Hash[hf(word)].empty() == true)
{do this}

这些是我得到的编译错误:

$ make -f makefile.txt
g++ -g -D HASH_TABLE_SIZE=10 -c hash.cpp
hash.cpp: In member function `void Hash::processFile(std::string)':
hash.cpp:19: error: expected primary-expression before '[' token
makefile.txt:6: recipe for target `hash.o' failed
make: *** [hash.o] Error 1

1 个答案:

答案 0 :(得分:0)

首先你有编译错误。请显示hash.cpp文件的第19行。 第二:

Hash[hf(word)].empty() == true

是一个糟糕的比较,你可以只使用

 if ( Hash[hf(word)].empty() )

第三:list是一个动态结构,所以,我认为,最好使用指向列表的数组:

list<string> * hashTable[HASH_TABLE_SIZE]