私は 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();
}
}