В boost::numeric::ublas
, существует три редких типов векторов.
Я вижу что mapped_vector
по существу stl::map
от индекса до значения, которое полагает, что все незнакомые значения 0 (или независимо от того, что общая ценность).
Но документация редка (ха ха) на информации о compressed_vector
и coordinate_vector
.
Может кто-либо для разъяснения? Я пытаюсь выяснить алгоритмическую сложность добавляющих объектов к различным векторам, и также скалярных произведений между двумя такими векторами.
Очень полезный ответ предложил это, compressed_vector очень похож на compressed_matrix. Но кажется, что, например, сжатое устройство хранения данных строки только для хранения матриц - не просто векторы.
Я вижу это unbounded_array
тип хранения, но я не совсем уверен, что спецификация для этого, также. Если я создаю compressed_vector с размером 200,000,000, но только с 5 ненулевыми местами, действительно ли это менее эффективно всегда, чем создание compressed_vector с размером 10 и 5 ненулевых мест?
Большое спасибо!