Реализация циклического цикла в настраиваемом хешированном наборе: доступ только к записям, не помеченным как пустые

Я реализовал простой пользовательский неупорядоченный набор контейнеров, который использует хеширование. Внутри он хранит данные примерно так:

class Set
{
T *data = nullptr;
bool *emptyList = nullptr;
int size = 0;

... (inner methos go here)
};

То есть он хранит два массива. Один называется data с фактическими значениями шаблонного типа Tи еще один называется emptyList с bool значения, которые отмечают, считается ли в этой позиции набор пустым или нет.

Таким образом, линейное исследование для сохранения новых значений, а также удаление записей становятся намного дешевле. Оба становятся, соответственно, просто вопросом поиска следующего emptyList[index] = trueили установить его в true,

В настоящее время я разрешаю итерацию по значениям, хранящимся в наборе, как for(auto i : set_instance) имея следующие открытые функции-члены в заданном классе:

T* begin() const { data[0] };
T* end() const { data[end] };

Проблема с этим, конечно же, заключается в том, что дальний цикл for также обращается к записям в data к ним нельзя обращаться, так как они отмечены в emptyList как пустой

Есть ли способ для меня, чтобы когда пользователь пытается перебрать множество с помощью циклических циклов, только записи в data которые соответствуют записям в emptyList которые не помечен как true действительно доступны / обрабатываются в цикле?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]