#include #include #include #include #include #include #include int main() { /* initialize values and fill it with shuffled values 1..100 */ std::vector values(100); std::iota(values.begin(), values.end(), 1); std::shuffle(values.begin(), values.end(), std::mt19937(2)); /* select all even values out of it */ std::vector selected_values; int last_selected_value = std::numeric_limits::min(); std::copy_if(values.begin(), values.end(), std::back_inserter(selected_values), [&](const int& value) -> bool { if (value >= last_selected_value) { last_selected_value = value; return true; } else { return false; } }); /* print selected values */ int count = 0; for (auto value: selected_values) { std::cout << std::setw(4) << value; if (++count % 10 == 0) std::cout << std::endl; } std::cout << std::endl; }