操作员超载增压UBLAS向量
Operator overloading Boost ublas Vector
有没有一种方法可以使C 中的Boost Vector的"/"运算符超载?
#include <boost/assign.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/operations.hpp>
#include <boost/numeric/ublas/assignment.hpp>
namespace ublas = boost::numeric::ublas;
using namespace boost::assign;
template <typename T, typename U>
ublas::vector<T> operator/(U& var)
{
// do something here
return *this;
}
我看到的错误超载的"运算符/"必须是二进制操作员(具有1个参数)
您需要的是:
#include <boost/assign.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/operations.hpp>
#include <boost/numeric/ublas/assignment.hpp>
namespace ublas = boost::numeric::ublas;
using namespace boost::assign;
template <typename T, typename U>
ublas::vector<T> operator/(ublas::vector<T> v, U& var)
{
// your logic for /
return v;
}
int main()
{
ublas::vector<int> v1;
auto v2 = v1 / 2;
return 0;
}
您拥有的运算符函数是独立函数,而不是类的成员,因此它需要对其应使用的对象的两个参数,并且因为它不是类成员它也没有this
。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- typedef 一个向量和 boost::numeric::ublas::vector 的固定大小
- 从另一个子向量或subsatrix创建boost :: numeric :: ublas vector
- 操作员超载增压UBLAS向量
- 为什么uBLAS没有“运算符*(矩阵,向量)”
- 什么是矩阵表达式和向量表达式类在Boost.uBLAS
- 从二进制文件中读取ublas向量或用array[]初始化它
- 访问UBLAS稀疏向量中非零元素的索引
- 对Boost::uBLAS向量执行STL操作
- 使用uBLAS从C++中的向量创建矩阵
- 将 boost::numeric::ublas:::matrix row 复制到向量的向量
- Boost uBLAS矩阵/向量积