Greeting to all, Currently I'm using std::sort on boost points on x-coordinte as follows typedef bg::model::point<long long, 2, bg::cs::cartesian> point; typedef std::pair<point, long long> value_type; std::vector<value_type> values; // for single attribute sort on point data sets // std::sort needs custom comparison operator struct PointLessX { bool operator()(const value_type& p, const value_type& q) const { return bg::get<0>(p.first) < bg::get<0>(q.first); } }; std::cout << "Sorting the data " << std::endl; PointLessX x; std::sort(values.begin(), values.end(), x); http://www.boost.org/doc/libs/1_58_0/libs/sort/doc/html/index.html#sort.overview.intro _______________________________________________ Geometry mailing list [hidden email] http://lists.boost.org/mailman/listinfo.cgi/geometry |
Hi Hussein,
2015-07-15 20:11 GMT+02:00 Hussein Almashouq <[hidden email]>:
I'm guessing you'd like to use integer_sort() ? Have you tried to implement it like in this example: http://www.boost.org/doc/libs/1_58_0/libs/sort/example/rightshiftsample.cpp ? So indeed implement the rightshift function object: struct RightShiftX { inline long long operator()(value_type const& p, unsigned offset) const { return bg::get<0>(p.first) >> offset; } }; And then pass both function objects into the sorting function: boost::sort::spreadsort::integer_sort(values.begin(), values.end(), RightShiftX(), PointLessX()); Regards, Adam P.S. This is a question more closely related to Boost.Sort than Boost.Geometry. It could be asked on Boost-Users mailing list. _______________________________________________ Geometry mailing list [hidden email] http://lists.boost.org/mailman/listinfo.cgi/geometry |
Free forum by Nabble | Edit this page |