关于C++矩阵的代码优化问题

rvals是一个向量,dists是一个二维数组。像代码中这样把向量中的每个值与矩阵比较并且计算矩阵中比他小的值的个数,我采用的是下面这种暴力方法,但是dists数组一大了计算速度就巨慢,能不能有什么优化的方法?
ps :矩阵用的eigen库


    for(int i = 0; i < rvals.size(); i++)
    {
        int count = 0;
        double s;
        for(int j = 0; j < dists.rows(); j++ )
        {
            for(int k = 0; k < dists.cols(); k++)
            {
                if(dists(j,k) < rvals[i])
                {
                    count++;
                }
                    
            }
        }
   }

先排序后比较