提升向量与STL向量

时间:2011-06-09 14:53:27

标签: c++ boost stl vector ublas

boost::numeric::ublas::vectorstd::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中工作?它们是否适用于基于范围的循环?

2 个答案:

答案 0 :(得分:22)

这些是完全正交的数据类型:前者代表'vector'(一维矩阵)的代数定义,而后者代表'vector'(一维数组)的计算机科学定义。

他们比较。

答案 1 :(得分:9)

如果你想进行线性代数运算,你应该只使用ublas :: vector,比如矩阵向量乘法等。 它们不提供与std :: vector相同的功能或相同的接口。 就运行时效率而言,我知道,没有什么能比std :: vector更好。