/** \file sorted_data_set.hpp */ #ifndef SORTED_DATA_SET #define SORTED_DATA_SET #include "core/fitter.hpp" #include #include namespace opt_utilities { template bool comp_data(const data& d1,const data& d2) { return d1.get_x() class sorted_data_set :public data_set { private: std::vector > data_vec; data_set* do_clone()const { return new sorted_data_set(*this); } const data& do_get_data(size_t i)const { return data_vec.at(i); } size_t do_size()const { return data_vec.size(); } void do_add_data(const data& d) { typename std::vector >::iterator p =std::lower_bound(data_vec.begin(),data_vec.end(),d,comp_data); //data_vec.push_back(d); data_vec.insert(p,d); } void do_clear() { data_vec.clear(); } }; } #endif //EOF