nth_element 对 Eigen 库成员的默认策略是什么?

What is the default strategy of nth_element on Eigen library members?

我看过一段代码:

template<class T>
T getMedian(vector<T>& data_vec)
{
    assert(!data_vec.empty());
    typename vector<T>::iterator it = data_vec.begin()+floor(data_vec.size()/2);
    nth_element(data_vec.begin(), it, data_vec.end());
    return *it;
}

例如,T 是 eigen 库中的“vector2D”。默认排序规则是什么? (比较向量范数或其他?)

我通过互联网进行了搜索,但未能获得任何线索...

它不会编译,因为没有为 Eigen::Matrix 定义 operator<。因此,您需要提供自己的比较函子来 nth_element 实施您选择的策略。