我对 C++ 很陌生,我正在使用 HashTables 创建一个程序。这是为了家庭作业。这是我第一次使用和创建 HashTables,所以请提前原谅我,因为我不完全知道我在做什么。我现在遇到的主要问题是合并我的remove()
功能。我可以编译代码,但是当我运行测试程序时,它崩溃了。我收到的错误是
列表迭代器不可递减
我的删除功能基于我的教授提供给我们的插入功能。只是改变了一些东西。这是我的课HTable
和我的remove()
功能。
class HTable
{
public:
HTable(int size);
void insert( const string &s);
void remove(string key);
private:
vector<list<string>> List;
int currSize;
int tableSize;
int hash(const string &key);
int hashFunction(string key);
int HTableSize;
int *status_arr;
ostream & operator <<( ostream &);
};
remove()
功能
inline void HTable::remove(string key)
{
list<string> List;
if( find( List.begin( ), List.end( ), key ) == List.begin( ) )
{
List.pop_back();
}
}