#include #include #include #include int main() { std::vector values{5, 2, 3, 2, 4, 1}; std::sort(values.begin(), values.end()); assert((values == std::vector{1, 2, 2, 3, 4, 5})); auto first = std::lower_bound(values.begin(), values.end(), 2); auto last = std::upper_bound(values.begin(), values.end(), 2); assert(last - first == 2); assert(std::lower_bound(values.begin(), values.end(), 9) == values.end()); auto new_end = std::remove_if(values.begin(), values.end(), [](int x) { return x % 2 == 0; }); assert(values.size() == 6 && new_end - values.begin() == 3); values.erase(new_end, values.end()); assert((values == std::vector{1, 3, 5})); std::cout << values[0] << ' ' << values[1] << ' ' << values[2] << '\n'; }