首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost::numeric::ublas::vector<double>和double[]

boost::numeric::ublas::vector<double>和double[]
EN

Stack Overflow用户
提问于 2010-10-09 00:37:33
回答 2查看 1.2K关注 0票数 2

我在代码中对矩阵和向量操作使用boost,我使用的一个库(CGNS)有一个数组作为参数。如何以boost“方式”将向量复制到double[]中,或者更好的是,我可以在不创建副本的情况下传递数据吗?

我对c++有点陌生,刚刚开始使用boost。有没有我应该用这个信息阅读的指南?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-09 00:41:30

可以将任意两个输入迭代器之间的内容复制到输出迭代器using the copy algorithm。因为ublas::vector和数组都有迭代器接口,所以我们可以使用:

代码语言:javascript
复制
#include <boost/numeric/ublas/vector.hpp>
#include <algorithm>
#include <cstdio>

int main () {
    boost::numeric::ublas::vector<double> v (3);
    v(0) = 2;
    v(1) = 4.5;
    v(2) = 3.15;

    double p[3];

    std::copy(v.begin(), v.end(), p);   // <--

    printf("%g %g %g\n", p[0], p[1], p[2]); 

    return 0;
}
票数 3
EN

Stack Overflow用户

发布于 2010-10-09 00:42:56

取决于所涉及的类型。对于std::vector,只需确保它是非空的,然后就可以传递&v[0]了。对于您正在使用的Boost类型,很可能也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3892549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档