在boost::numeric::ublas
中,有three sparse vector types。
我可以看到mapped_vector
从索引到值本质上是stl::map
,它将所有未找到的值视为0(或者是常见值)。
但是关于compressed_vector
和coordinate_vector
的信息,文档很少(哈哈)。
有人能够澄清吗?我试图弄清楚向各种向量添加项目的算法复杂性,以及两个这样的向量之间的点积。
一个非常有用的答案是,compressed_vector与compressed_matrix非常相似。但似乎,例如,compressed row storage仅用于存储矩阵 - 而不仅仅是向量。
我看到unbounded_array
是存储类型,但我也不太清楚规范是什么。如果我创建一个大小为200,000,000但仅包含5个非零位置的compressed_vector,那么创建一个大小为10和非零位置的compressed_vector会不会有效率?
非常感谢!