#include <algorithm>
#include <numeric>
vector<int> v = {5,2,8,1,9,3};
sort(v.begin(), v.end()); // ascending: {1,2,3,5,8,9}
sort(v.begin(), v.end(), greater<int>()); // descending
find(v.begin(), v.end(), 5); // iterator to 5 (or end)
count(v.begin(), v.end(), 5); // how many 5s
accumulate(v.begin(), v.end(), 0); // sum
*min_element(v.begin(), v.end()); // smallest
*max_element(v.begin(), v.end()); // largest
reverse(v.begin(), v.end());
// transform: apply function to each element
vector<int> doubled(v.size());
transform(v.begin(), v.end(), doubled.begin(), [](int x){ return x*2; });
// remove_if + erase
v.erase(remove_if(v.begin(), v.end(), [](int x){ return x%2==0; }), v.end());
Write topN(vector<int> v, int n) that returns the n largest elements in descending order.
Example: topN({3,1,4,1,5,9,2,6}, 3) → {9,6,5}
Click "Run" to execute your code.