14

运行时效率如何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>与升压向量一起使用?他们使用相同的迭代器吗?

它们在 C++0x 中工作吗?它们适用于基于范围的循环吗?

4

2 回答 2

24

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

他们比较。

于 2011-06-09T15:06:30.593 回答
10

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

于 2011-06-09T15:08:57.903 回答