Возможно, вы захотите сделать несколько вещей, чтобы оптимизировать поиск.
Сначала проверьте count()
на предмет чего-то вроде предыдущей записи map.end () (т. Е. -). Если они одинаковые, вы знаете, что они заполнены и могут быть добавлены в конце.
Если это не так (значение конечного итератора больше, чем count()
), то вы знаете, что вам нужно искать дыру. При поиске целого, вы, вероятно, захотите извлечь все uniqueKeys()
, а затем начните поиск с середины, чтобы увидеть, соответствует ли средний ключ предыдущему count()/2
или около того. Если нет, то идите вниз еще на count()/4
, иначе поднимитесь на count()/4
. Повторяйте, пока не найдете то, что ищете.
Но на самом деле, я не уверен, что карта - это правильный контейнер. Похоже, вам нужен массив или связанный список или ... это зависит от ваших данных. Но если вам нужно выполнить вышеуказанную операцию с картой, я предлагаю вам, вероятно, найти правильный контейнер.