我想用我自己的std::set
比較,這需要一個參數傳遞給它的構造:使用仿函數沒有對STL容器的默認構造函數
template <class T = double> class EpsCompare {
public:
EpsCompare(T input_eps) : _eps(input_eps) {};
bool operator() (const T & element1, const T & element2) const {
return (round(element1*_eps) < round(element2*_eps));
}
T _eps;
};
我如何通過這宣告我設置數據類型?我想做這樣的事情:
std::set<double, EpsCompare<double>(1e-5)> myEpsSet;
這不能編譯,那該怎麼辦呢?
將實例傳遞給構造函數:http://en.cppreference.com/w/cpp/container/set/set – juanchopanza
您**將被此比較器燒燬。決不。永遠。永遠。使用。一個。小量。什麼時候。排序。數字。永遠。 –
@ n.m。爲什麼?我甚至不認爲這是典型意義上的一個小數。 – Angew