#include <iostream>
#include <set>
template <typename IT>
void print(IT begin, IT end)
{
const char* sep = "";
for (auto it = begin; it != end; ++it) {
std::cout << sep << *it;
sep = ",";
}
}
int main()
{
std::set<int> s{4, 6, 8, 9};
for (auto it = std::next(s.begin()); it != s.end(); ++it) {
std::cout << "First elements: "; print(s.begin(), it);
std::cout << ", Rest: "; print(it, s.end()); std::cout << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgoKdGVtcGxhdGUgPHR5cGVuYW1lIElUPgp2b2lkIHByaW50KElUIGJlZ2luLCBJVCBlbmQpCnsKICAgIGNvbnN0IGNoYXIqIHNlcCA9ICIiOwogICAgZm9yIChhdXRvIGl0ID0gYmVnaW47IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgIHN0ZDo6Y291dCA8PCBzZXAgPDwgKml0OwogICAgICAgIHNlcCA9ICIsIjsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnNldDxpbnQ+IHN7NCwgNiwgOCwgOX07CiAgICAKICAgIGZvciAoYXV0byBpdCA9IHN0ZDo6bmV4dChzLmJlZ2luKCkpOyBpdCAhPSBzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJGaXJzdCBlbGVtZW50czogIjsgcHJpbnQocy5iZWdpbigpLCBpdCk7CiAgICAgICAgc3RkOjpjb3V0IDw8ICIsIFJlc3Q6ICI7IHByaW50KGl0LCBzLmVuZCgpKTsgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsgICAKICAgIH0KfQ==
First elements: 4, Rest: 6,8,9
First elements: 4,6, Rest: 8,9
First elements: 4,6,8, Rest: 9