I have a vector of stuct, how to sort this vector? problem is I can't overload the '<' operator in struct definition, as i want to sort by 'x' one time, and then by 'y'. I tried to write the comparator function separatley but its no working. How to do it?
#include<iostream> #include<algorithm> #include<vector> using namespace std; typedef struct { int x; int y; }point; struct comp_x { bool operator()(point &a, point &b) return a.x<b.x; } struct comp_y { bool operator()(point &a, point &b) return a.y<b.y; } int main() { vector<point> vc; int n; cin>>n; point a; for(int i=0;i<n;i++) { cin>>a.x; cin>>a.y; vc.push_back(a); } cout<<endl; sort(vc.begin(), vc.end(), comp); for(int i=0;i<n;i++) { cout<<vc[i].x<<" "<<vc[i].y<<endl; } system("pause"); return 0; } -- Regards,* Aanchal Goyal*. -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.