#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Vector3
{
Vector3( const int& a, const int& b, const int& c )
{
m_iaData[0] = a;
m_iaData[1] = b;
m_iaData[2] = c;
}
int m_iaData[3];
};
class Comparsion
{
public:
int idx;
Comparsion(const int& i):idx(i){};
bool operator() ( const Vector3& v1, const Vector3& v2 ) const
{
return v1.m_iaData[idx] < v2.m_iaData[idx];
}
};
int main() {
// your code goes here
vector<Vector3> v3;
Vector3 AA(10,0,0);
v3.push_back(AA);
Vector3 BB(20,0,0);
v3.push_back(BB);
Vector3 CC(30,0,0);
v3.push_back(CC);
sort(v3.begin(),v3.end(),Comparsion(0));
for(vector<Vector3>::iterator it = v3.begin(); it !=v3.end(); ++it)
{
cout << (*it).m_iaData[0] << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFZlY3RvcjMKewoJVmVjdG9yMyggY29uc3QgaW50JiBhLCBjb25zdCBpbnQmIGIsIGNvbnN0IGludCYgYyApCgl7CgltX2lhRGF0YVswXSA9IGE7CgltX2lhRGF0YVsxXSA9IGI7CgltX2lhRGF0YVsyXSA9IGM7Cgl9CgoJaW50IG1faWFEYXRhWzNdOwp9OwoKY2xhc3MgQ29tcGFyc2lvbgp7CglwdWJsaWM6CgkJaW50IGlkeDsKCQlDb21wYXJzaW9uKGNvbnN0IGludCYgaSk6aWR4KGkpe307CgkJYm9vbCBvcGVyYXRvcigpICggY29uc3QgVmVjdG9yMyYgdjEsIGNvbnN0IFZlY3RvcjMmIHYyICkgY29uc3QKICAJCXsKICAgICAJCXJldHVybiB2MS5tX2lhRGF0YVtpZHhdIDwgdjIubV9pYURhdGFbaWR4XTsKICAgCQl9Cn07CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3RvcjxWZWN0b3IzPiB2MzsKCVZlY3RvcjMgQUEoMTAsMCwwKTsKCXYzLnB1c2hfYmFjayhBQSk7CglWZWN0b3IzIEJCKDIwLDAsMCk7Cgl2My5wdXNoX2JhY2soQkIpOwoJVmVjdG9yMyBDQygzMCwwLDApOwoJdjMucHVzaF9iYWNrKENDKTsKCQoJc29ydCh2My5iZWdpbigpLHYzLmVuZCgpLENvbXBhcnNpb24oMCkpOwoJCglmb3IodmVjdG9yPFZlY3RvcjM+OjppdGVyYXRvciBpdCA9IHYzLmJlZ2luKCk7IGl0ICE9djMuZW5kKCk7ICsraXQpCgl7CgkJY291dCA8PCAoKml0KS5tX2lhRGF0YVswXSA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=