#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
// to use user-defined comparison for sorting,
// the user needs to provide a function that
// returns true when the left argument should
// go earlier than the right argument (so for
// increasing order the comparison function
// returns true if i<j)
bool is_less(int i, int j)
{
return (i<j);
}
int main()
{
int i;
int n = 18;
// initialize random number generator with random seed 123
srand48(123);
// two vectors of n elements of type int
vector<int> v(n);
// generate both vectors random, each variable from
// uniform distribution over interval {0, ..., 99}
for (i=0; i<n; i++)
v[i] = drand48()*100;
// print out the vector
cout << "initial vector:" << endl;
for (i=0; i<n; i++)
cout << " " << v[i] << endl;
// sort the vector (ascending order)
// (v.begin() and v.end() indicate that the sorting
// should consider the entire vector from its start
// on the left until the end on the right)
sort( v.begin(), v.end(), is_less);
// print out the vector
cout << "sorted vector:" << endl;
for (i=0; i<n; i++)
cout << " " << v[i] << endl;
// return from main with 0
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIHRvIHVzZSB1c2VyLWRlZmluZWQgY29tcGFyaXNvbiBmb3Igc29ydGluZywKLy8gdGhlIHVzZXIgbmVlZHMgdG8gcHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgCi8vIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSBsZWZ0IGFyZ3VtZW50IHNob3VsZAovLyBnbyBlYXJsaWVyIHRoYW4gdGhlIHJpZ2h0IGFyZ3VtZW50IChzbyBmb3IKLy8gaW5jcmVhc2luZyBvcmRlciB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbiAKLy8gcmV0dXJucyB0cnVlIGlmIGk8aikKCmJvb2wgaXNfbGVzcyhpbnQgaSwgaW50IGopCnsKICByZXR1cm4gKGk8aik7Cn0KCmludCBtYWluKCkKewogIGludCBpOwogIGludCBuID0gMTg7CgogIC8vIGluaXRpYWxpemUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3Igd2l0aCByYW5kb20gc2VlZCAxMjMKCiAgc3JhbmQ0OCgxMjMpOwoKICAvLyB0d28gdmVjdG9ycyBvZiBuIGVsZW1lbnRzIG9mIHR5cGUgaW50CgogIHZlY3RvcjxpbnQ+IHYobik7CgogIC8vIGdlbmVyYXRlIGJvdGggdmVjdG9ycyByYW5kb20sIGVhY2ggdmFyaWFibGUgZnJvbSAKICAvLyB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBvdmVyIGludGVydmFsIHswLCAuLi4sIDk5fQoKICBmb3IgKGk9MDsgaTxuOyBpKyspCiAgICB2W2ldID0gZHJhbmQ0OCgpKjEwMDsgICAKCiAgLy8gcHJpbnQgb3V0IHRoZSB2ZWN0b3IKCiAgY291dCA8PCAiaW5pdGlhbCB2ZWN0b3I6IiA8PCBlbmRsOwogIGZvciAoaT0wOyBpPG47IGkrKykKICAgIGNvdXQgPDwgIiAgICIgPDwgdltpXSA8PCBlbmRsOwoKICAvLyBzb3J0IHRoZSB2ZWN0b3IgKGFzY2VuZGluZyBvcmRlcikKICAvLyAodi5iZWdpbigpIGFuZCB2LmVuZCgpIGluZGljYXRlIHRoYXQgdGhlIHNvcnRpbmcKICAvLyBzaG91bGQgY29uc2lkZXIgdGhlIGVudGlyZSB2ZWN0b3IgZnJvbSBpdHMgc3RhcnQKICAvLyBvbiB0aGUgbGVmdCB1bnRpbCB0aGUgZW5kIG9uIHRoZSByaWdodCkKCiAgc29ydCggdi5iZWdpbigpLCB2LmVuZCgpLCBpc19sZXNzKTsKCiAgLy8gcHJpbnQgb3V0IHRoZSB2ZWN0b3IKCiAgY291dCA8PCAic29ydGVkIHZlY3RvcjoiIDw8IGVuZGw7CiAgZm9yIChpPTA7IGk8bjsgaSsrKQogICAgY291dCA8PCAiICAgIiA8PCB2W2ldIDw8IGVuZGw7CgogIC8vIHJldHVybiBmcm9tIG1haW4gd2l0aCAwCiAgCiAgcmV0dXJuIDA7Cn0K