c ++犰狳模数函数

时间:2014-12-29 09:29:25

标签: c++ modulus armadillo

最好的方法在c ++ 中对向量矩阵执行模数运算符是什么?犰狳


向量和矩阵类重载%运算符以执行逐元素乘法。尝试使用它会产生invalid operands错误。 我当时正在等待

uvec a = {0, 1, 2, 3};
uvec b = a % 2;
cout << "b" << endl;

会产生以下内容:

b:
    0
    1
    0
    1

1 个答案:

答案 0 :(得分:3)

运算符'%'用于逐元素矩阵乘法。你必须创建自己的功能:

/**
 * Extend division reminder to vectors
 *
 * @param   a       Dividend 
 * @param   n       Divisor
 */
template<typename T>
T mod(T a, int n)
{
    return a - floor(a/n)*n;
}