boost::numeric::ublas::vector
和std::vector
如何比较运行时效率?
可以安全地假设我可以将整个程序从使用std::vector
转换为使用boost::numeric::ublas::vector
,只需写下:
#include <boost/numeric/ublas/vector.hpp>
using namespace boost::numeric::ublas;
而不是#include<vector>
?我可以只使用增强矢量,就像它们在所有方面都是STL矢量一样吗?
<algorithm>
的函数是否与boost向量一起使用?他们使用相同的迭代器吗?
它们是否在C ++ 0x中工作?它们是否适用于基于范围的循环?
答案 0 :(得分:22)
这些是完全正交的数据类型:前者代表'vector'(一维矩阵)的代数定义,而后者代表'vector'(一维数组)的计算机科学定义。
他们不比较。
答案 1 :(得分:9)
如果你想进行线性代数运算,你应该只使用ublas :: vector,比如矩阵向量乘法等。 它们不提供与std :: vector相同的功能或相同的接口。 就运行时效率而言,我知道,没有什么能比std :: vector更好。