У меня есть N точек в измерениях D, где N - 1 миллион и D 100. Все мои точки имеют двоичные координаты, т. Е. {0, 1}^D, и меня интересует только скорость.Как хранить двоичные данные, когда вы только заботитесь о скорости?
В настоящее время в моей реализации используется std::vector<int>
. Мне интересно, могу ли я выиграть с точки зрения более быстрого выполнения, изменив мой data-structure. Я делаю только вставки и поиск (я не меняю биты).
Все связанные вопросы Я нашел упоминание std::vector<char>
, std::vector<bool>
и std::bitset
, но все упоминания о преимуществах пространства, которые следует использовать, можно получить с помощью таких структур.
Какова структура данных, когда скорость является главной проблемой для двоичных данных на C++?
Я намерен заселить свою структуру данных с двоичными данными, а затем сделать много смежных запросов (я имею в виду, что я на самом деле не заботиться о я-я координата точки, если я доступ точка I будет иметь доступ ко всем ее координатам непрерывно). Я вычислим Хэмминг расстояние между собой.
@ ks1322, мне так трудно увидеть, что вы там редактировали, но я вижу, что вы не повышаете - это означает, что вопрос сосать и его нужно удалить? – gsamaras
Без вопросов сосет. Некоторые из них нуждаются в небольшом коучинге, но каждый вопрос имеет потенциал. – nicomp
@nicomp это немного оптимистично, но я вижу, что вы указываете. Тем не менее, вы, как и ks1322, увидели этот вопрос и не подняли голову. Я начинаю волноваться, есть ли у вас предложения по улучшению? – gsamaras