填充提升向量或矩阵 [英] filling a boost vector or matrix
本文介绍了填充提升向量或矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个-EX pression方式分配一个标量来提振矩阵或向量的所有元素?我试图找到重新presenting更紧凑的方式:
的boost ::数字:: uBLAS库:: c_vector<浮动,N>伏;
用于(为size_t我= 0; I< N;我++){
v [I] = myScalar;
}
以下不工作:
的boost ::数字:: uBLAS库:: c_vector<浮动,N>
V(myScalar,myScalar,...等等...,myScalar);提高::数字:: uBLAS库:: c_vector<浮动,N>伏;
V = myScalar;
解决方案
由于矢量型号的标准随机访问的容器,你应该能够使用标准的STL算法。是这样的:
c_vector<浮动,N> VEC;
的std :: fill_n(vec.begin(),N,0.0);
或
的std ::填充(vec.begin(),vec.end(),0.0);
这大概也与Boost.Assign兼容的,但你必须检查。
Is there a single-expression way to assign a scalar to all elements of a boost matrix or vector? I'm trying to find a more compact way of representing:
boost::numeric::ublas::c_vector<float, N> v;
for (size_t i=0; i<N; i++) {
v[i] = myScalar;
}
The following do not work:
boost::numeric::ublas::c_vector<float, N>
v(myScalar, myScalar, ...and so on..., myScalar);
boost::numeric::ublas::c_vector<float, N> v;
v = myScalar;
解决方案
Because the vector models a standard random access container you should be able to use the standard STL algorithms. Something like:
c_vector<float,N> vec;
std::fill_n(vec.begin(),N,0.0f);
or
std::fill(vec.begin(),vec.end(),0.0f);
It probably also is compatible with Boost.Assign but you'd have to check.
这篇关于填充提升向量或矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文