#include <algorithm>
#include <vector>
namespace model {
struct GasStation
{
double getprice(int kindOfGas) const
{
return kindOfGas;
}
};
struct StationVector
{
std::vector<GasStation> localStations;
struct SortByGrade
{
int kindOfGas_;
SortByGrade(int kindOfGas)
:kindOfGas_(kindOfGas)
{
}
bool operator() (GasStation const &L, GasStation const & R) const
{
// You'll need other comparisons here, but this is a good start...
return L.getprice(kindOfGas_) < R.getprice(kindOfGas_);
}
};
void sortByGrade(int kindOfGas)
{
std::sort(localStations.begin(), localStations.end(), SortByGrade(kindOfGas));
}
};
}
int main()
{
model::StationVector sv;
sv.sortByGrade(0);
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KCm5hbWVzcGFjZSBtb2RlbCB7CiAgICAKc3RydWN0IEdhc1N0YXRpb24KewogICAgZG91YmxlIGdldHByaWNlKGludCBraW5kT2ZHYXMpIGNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIGtpbmRPZkdhczsKICAgIH0KfTsKCnN0cnVjdCBTdGF0aW9uVmVjdG9yCnsKICAgIHN0ZDo6dmVjdG9yPEdhc1N0YXRpb24+IGxvY2FsU3RhdGlvbnM7CgogICAgc3RydWN0IFNvcnRCeUdyYWRlCiAgICB7CiAgICAgICAgaW50IGtpbmRPZkdhc187CiAgICAgICAgU29ydEJ5R3JhZGUoaW50IGtpbmRPZkdhcykKICAgICAgICAgICAgOmtpbmRPZkdhc18oa2luZE9mR2FzKQogICAgICAgIHsKICAgICAgICB9CgogICAgICAgIGJvb2wgb3BlcmF0b3IoKSAoR2FzU3RhdGlvbiBjb25zdCAmTCwgR2FzU3RhdGlvbiBjb25zdCAmIFIpIGNvbnN0CiAgICAgICAgeyAKICAgICAgICAgICAgLy8gWW91J2xsIG5lZWQgb3RoZXIgY29tcGFyaXNvbnMgaGVyZSwgYnV0IHRoaXMgaXMgYSBnb29kIHN0YXJ0Li4uCiAgICAgICAgICAgIHJldHVybiBMLmdldHByaWNlKGtpbmRPZkdhc18pIDwgUi5nZXRwcmljZShraW5kT2ZHYXNfKTsgCiAgICAgICAgfQogICAgfTsKCiAgICB2b2lkIHNvcnRCeUdyYWRlKGludCBraW5kT2ZHYXMpIAogICAgewogICAgICAgIHN0ZDo6c29ydChsb2NhbFN0YXRpb25zLmJlZ2luKCksIGxvY2FsU3RhdGlvbnMuZW5kKCksIFNvcnRCeUdyYWRlKGtpbmRPZkdhcykpOwogICAgfQp9OwoKfQoKaW50IG1haW4oKQp7CiAgICBtb2RlbDo6U3RhdGlvblZlY3RvciBzdjsKICAgIHN2LnNvcnRCeUdyYWRlKDApOwp9Cg==