Помимо ваших требований, из ваших комментариев видно, что вы также планируете вставлять / удалять элементы. Я должен признать, что 20 миллионов, кажется, довольно много.
Теперь я понимаю идею опроса, но вы рассматривали что-то вроде unordered_multimap
? Вместо опроса по позиции вы можете опрашивать по клавише в O (1), хотя с немного большими накладными расходами в зависимости от типа клавиши.
Основное преимущество заключается в том, что не нужно синхронизировать содержимое 2. Конечно, это не работает, если вы хотите отсортировать контент.
Таким образом, если вы хотите, чтобы контент сортировался плюс быстрый (не O (1)) доступ к произвольной позиции, вы можете рассмотреть B + Tree или Radix Tree. Их идея состоит в том, чтобы хранить предметы в смежных зонах памяти по несколько сотен за раз.
Это только макушка моей головы. Подумайте об автозаполненном ответе, если хотите запекать в растворе:)