作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数接受一个 vector 并修改它。如何将 matrix_row 实例传递给此函数?我不想做任何复制操作
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/ublas/vector.hpp>
using namespace boost::numeric::ublas;
void useMatrixRow(matrix_row<matrix<double> >& mRow) {
// ...
}
void useConstVector(const vector<double>& v) {
// ...
}
void useVector(vector<double>& v) {
// ...
}
void useMatrix(matrix<double>& m) {
matrix_row<matrix<double> > mRow(m, 0);
useMatrixRow(mRow); // works
useConstVector(mRow); // works
// useVector(mRow); // doesn't work
}
当取消注释 useVector(mRow) 表达式时,我得到:
error: invalid initialization of reference of type 'boost::numeric::ublas::vector<double>&' from expression of type 'boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<double> >'
src/PythonWrapper.cpp:60:6: error: in passing argument 1 of 'void useVector(boost::numeric::ublas::vector<double>&)'
最佳答案
您可以使 useVector
成为模板函数:
template<class T>
void useVector(T &v) {
...
}
或者(如果可能)传递迭代器而不是整个容器:
template<class IterT>
void useVector(IterT begin, IterT end) {
...
}
关于c++ - boost :使用 matrix_row 代替 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20729286/
我有一个函数接受一个 vector 并修改它。如何将 matrix_row 实例传递给此函数?我不想做任何复制操作 #include #include #include using namesp
我是一名优秀的程序员,十分优秀!