Я пытаюсь использовать std::set
вместе с VectorXd
из библиотеки Эйгеном:Эйген: станд :: набор с VectorXd
typedef VectorXd Vec;
bool(*fn_pt)(Vec,Vec) = vecCompare;
set<Vec,bool(*)(Vec,Vec)> yx (fn_pt);
Функция vecCompare IST определяется следующим образом:
bool vecCompare (Vec v, Vec w) {
for (int i = 0; i < numCrit; ++i) {
if (v(i) < w(i)) return true;
}
return false;
}
Unfortunality, yx.find (x) работает некорректно, т. е. возвращает пустой итератор, даже если x уже находится в yx.
Что-то не в порядке с моим кодом?
Является 'numCrit == v.rows()' (и '== w.rows()')? – Wintermute
Да, это правда. –