Я ищу структуру данных, которая хранит данные, чтобы их вставленные (как вектор), которые должны содержать миллионы беззнаковых длин. Ключ в том, что он должен иметь поиск, который лучше, чем O (logn), потому что он будет искать по сравнению с аналогичным вектором того же размера. Есть ли что-то такое?Альтернатива векторам для больших наборов данных? C++
Если я вставляю 10, 20, 30 и затем перебираю множество, мне нужно гарантировать порядок 10, 20, 30. Мои данные - это строка, которую я преобразовал в unsigned long, чтобы уменьшить использование памяти, то есть обратный декодируемый.
EDIT: Поскольку люди спрашивают, я сравниваю два вектора друг с другом (оба очень большие по размеру), чтобы получить разницу.
Небольшой пример:
vector 1: 10 20 30 40 50 60
vector 2: 11 24 30 40 55 70 90
result: 30 40
unordered_map http://www.cplusplus.com/reference/unordered_map/unordered_map/ – aaronman
Почему вектор не достаточно? Когда вы говорите «он будет искать по сравнению с аналогичным вектором того же размера», что это значит? –
Очевидной альтернативой, которая соответствует вашим требованиям, является 'std :: deque', хотя, поскольку вы не сказали, что не так с' std :: vector' для ваших целей, невозможно догадаться, будет ли 'std :: deque' лучше , что хуже или аналогично. 'std :: list' также будет содержать элементы в последовательности, но шансы на его улучшение довольно удалены. –