Я запутался здесь, потому что не понимаю, где operator [] в хэш-таблице конфликтует с оператором [] в типе данных, который вы в нем храните.
Если ваш hash_table имеетoperator [] это может быть либо hash_map, в котором вы предоставляете ключ для operator [], либо operator [] возвращает вам содержимое ячейки.
Обычно, если я реализую свою собственную хеш-таблицуЯ непосредственно не храню данные в записях, но данные плюс некоторые «метаданные», то есть информация, относящаяся к ячейке.Поскольку ваша хеш-таблица поддерживает удаление, вам необходимо убедиться, что вы все равно можете достичь любых коллизий, которые предположительно были перемещены в другое место, независимо от вашей стратегии нахождения такой ячейки.Таким образом, удаленная ячейка доступна, но имеет значение, отличное от того, которое никогда не было занято, так как она может быть частью пути в ходе столкновения.
Хеш-функция, как вы говорите, независима.Поэтому он не зависит от механизма хранения и вообще не вызывает operator [] хеш-таблицы.
Хеш-таблица использует только хеш-функцию и функцию сравнения, а в остальном использует свою собственнуюполитика хранения и политика обработки столкновений.