- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的意思是typedef
具有固定大小的 vector/boost vector 的名称,然后是相应的迭代器。我可以做的是(见下文)
typedef std::array<double, 3> point_3d_array;
typedef point_3d_array::iterator point_3d_iterator;
typedef point_3d_array::const_iterator point_3d_const_iterator;
我的想法是稍后在我的代码中使用类似的东西
point_3d_array p;
for ( point_3d_const_iterator it = p.begin() ; it != p.end() ; it++ ) {
my code
}
问题 1:这可能吗
std::vector<double>
boost::numeric::ublas::vector<double>
?
如果不可能:
问题 2:什么是替代实现? (以下除外)。
问题 3:我会怎样 typedef
迭代器?
截至目前,由于我找不到实现它的方法,所以我定义了自己的类(见下文)。但这带来了(至少)必须重新定义我自己的负担 begin
, end
和迭代器(例如 this )。我的意思是避免这种情况。
问题 4:我在 operator+=
的定义中将两条替代行放在一起(见下文)。其中一个不工作。有什么问题?
typedef std::array<double, 3> point_3d_array;
typedef point_3d_array::iterator point_3d_iterator;
typedef point_3d_array::const_iterator point_3d_const_iterator;
class point_3d {
public:
/*
* Default constructor
*/
point_3d() : _point_3d({ 0, 0, 0 }) { };
/*
* Initialization constructor
* Is copy constructor automatically generated?
*/
point_3d(const double x1, const double x2, const double x3) : _point_3d({x1, x2, x3}) {};
/*
* Iterator members
*/
point_3d_iterator begin() { return _point_3d.begin(); }
point_3d_iterator end() { return _point_3d.end(); }
point_3d_const_iterator begin() const { return _point_3d.begin(); }
point_3d_const_iterator end() const { return _point_3d.end(); }
/*
* Array subscript operators
*/
double & operator[](size_t i) {
return this->_point_3d[ i ];
}
const double & operator[](size_t i) const {
return this->_point_3d[ i ];
}
/*
* Basic operation members
*/
point_3d & operator+=(const point_3d &rhs) {
for ( size_t i = 0 ; i < this->_point_3d.size() ; i++ ) {
//this[ i ] += rhs[ i ]; // Why are Array subscript operators not working in the lhs?
this->_point_3d[ i ] += rhs[ i ];
}
return *this;
}
private:
point_3d_array _point_3d;
};
最佳答案
std::vector
和(在撰写本文时)boost::numeric::ublas::vector
都不是设计是一个固定的大小。没有指定容器大小的模板参数。
所以不,固定大小的 typedef
对这些容器没有意义。
如果您想限制 std::vector
的大小,那么一种方法是编写您自己的带有 std::vector
的模板类来建模有效载荷。
关于c++ - typedef 一个 vector 和固定大小的 boost::numeric::ublas::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55121405/
我是 Boost::uBLAS 的菜鸟。 我有一个接受 ublas::matrix_expression 的函数作为输入: namespace ublas = boost::numeric::ubla
我正在寻找一种优雅的方式来实现它。基本上我有一个 m x n 矩阵。其中每个单元格代表像素值,行和列代表图像的像素行和像素列。 因为我基本上是从 HDF 文件映射点及其对应的像素值。我们基本上有很多空
我有一个 uBLAS 矩阵,像这样: boost::numeric::ublas::matrix mat(50000,50000); 完成矩阵的一组计算后,我希望释放它的内存。 我一直在使用 mat.
我正在尝试通过在我的 .h 文件中定义 vector 来初始化/分配值给 ublas vector : someClass{ ublas::vector *L; } ; 然后在我的 .cpp
我读了一篇关于使用动态规划优化矩阵嵌套乘积的文章,我想看看它是如何在 boost::uBLAS 中实现的。 我不确定我是否理解 the documentation (他们在页面的最后谈论它),但似乎他
根据 this page ublas 中应该有一个 sum 函数,但我无法编译以下内容: boost::numeric::ublas::matrix mymatrix; std::cout #inc
有没有办法 boost boost ublas 产品的性能? 我有两个矩阵 A,B,我想对其进行多重/添加/子/... 在 MATLAB 与 C++ 中,对于 2000x2000 矩阵运算,我得到以下
我有以下包含 O(N) 元素的稀疏矩阵 boost::numeric::ublas::compressed_matrix adjacency (N, N); 我可以像下面这样在 O(N^2) 时间内编
尝试在最初未指定大小的矩阵中插入元素时出现运行时错误。 下面的代码为 m1 运行 finr 但为 m2 抛出错误。 #include #include #include int main
我正在尝试计算 Boost Ublas 矩阵的所有元素的平方根。到目前为止,我有这个,而且它有效。 #include #include "boost\numeric\ublas\matrix.hpp
我想知道是否有可能获取 Boost uBLAS 矩阵的单个元素的地址? 也就是 boost::numeric::ublas::matrix bob(3,3); some_function(&bob[2
我是 C++ Boost uBLAS 库的新手,所以我有一个菜鸟问题 - 如何使用这个库转置矩阵?我在这里找不到问题: http://www.boost.org/doc/libs/1_44_0/lib
我正在尝试实现某些矩阵运算,但我迷失在 ublas 库的内部。是否有关于如何实现新的 ublas 矩阵表达式的教程或示例等资源? 谢谢 最佳答案 不知道它是否会有所帮助,但有一个关于扩展 uBlas
我正在用 C++ 编写一个用于双曲偏微分方程的软件。几乎所有的符号都是 vector 和矩阵的。最重要的是,我需要线性代数求解器。是的, vector 和矩阵的大小可以有很大差异(从 1000 到只能
我正在调试一个大量使用 uBLAS vector 和矩阵的应用程序。我想打印它们以使用类似以下内容的控制台: boost::numeric::ublas::vector v; // ...fillin
我在使用 boost::ublas 矩阵时需要虚拟析构函数吗? 顺便说一下,我的类是一个模板类。 最佳答案 你是说你有这个吗? template struct my_class { // .
我目前正在研究一种算法,该算法需要找到矩阵中某项的所有相同出现次数。我决定使用来自 boost 的 uBLAS 矩阵。所以我的问题是: 我有一个 ublas::matrix 看起来像: 1 2 3 4
我收到一个编译器错误 /Developer/boost/boost/numeric/ublas/expression_types.hpp:184:16: fatal error: recursive
我想将特定的 boost ublas vector 声明为全局变量。问题是函数外的声明总是会导致错误。 这是一个具体的例子: 以下代码将给出多个错误:( error C2143: syntax err
我正在尝试做这样的事情 #include using namespace boost::numeric::ublas; class A{ protected: vector a_; pu
我是一名优秀的程序员,十分优秀!