Boost logo

Geometry :

Subject: [geometry] sort points on single coordinate
From: Hussein Almashouq (hussein.almashouq_at_[hidden])
Date: 2015-07-15 14:11:14

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);

The above code is working fine but a bit slow when the # of points exceeds

I looked at boost sort package and it seems it overcomes this issue

However , I could not figure out how to adapt it to sort my boost points
which are of value type long. It seem that I have to define some bit shift

Any suggestion please ?

Hussein Almashouq

This message and its contents, including attachments are intended solely 
for the original recipient. If you are not the intended recipient or have 
received this message in error, please notify me immediately and delete 
this message from your computer system. Any unauthorized use or 
distribution is prohibited. Please consider the environment before printing 
this email.

Geometry list run by mateusz at