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
实施您选择的策略。
我看过一段代码:
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
实施您选择的策略。