【发布时间】:2013-07-23 08:37:06
【问题描述】:
我正在考虑实现一个类似容器的数组,但我不确定是使用 gsl::gsl_vector 还是 std::vector。容器需要节省空间,但调用值也要非常快。容器将在主程序中不断被引用,例如,将值输入到张量函数中,等等。我从容器中调用了数十亿次。
以下是我目前考虑过的利弊:
gsl_vector 很方便,因为它允许我偶尔使用 gsl BLAS 库,并且gsl_vector_get(...) 调用非常有效。另一方面,我可以使用 stl 迭代器获得几乎相同的调用速度,并且 stl 向量有一个我觉得很自然的接口。
上面的代码中是否存在我应该注意的内存开销/效率问题?
另外,我目前正在使用std::vector<gsl_vector*> 实现,以及一个遍历std::vector 的迭代器。在这里使用 gsl_matrix 会更聪明吗?这个想法是使用 gsl_vector_views 来获得正确的向量,而不是迭代器。这样会更有效率吗?
【问题讨论】:
标签: c++ vector stl comparison gsl