// forward_list::insert_after
#include <iostream>
#include <array>
#include <forward_list>
int main ()
{
std::array<int,3> myarray = { 11, 22, 33 };
std::forward_list<int> mylist;
auto it = mylist.before_begin();
it = mylist.insert_after ( mylist.before_begin(), 10 ); // 10
// ^ <- it
it = mylist.insert_after ( it, 2, 20 ); // 10 20 20
// ^
it = mylist.insert_after ( it, myarray.begin(), myarray.end() ); // 10 20 20 11 22 33
// ^
it = (mylist.begin()); // ^
it++;
it = mylist.insert_after ( it, {1,2,3} ); // 10 1 2 3 20 20 11 22 33
// ^
std::cout << "mylist contains:";
for (int& x: mylist) std::cout << ' ' << x;
std::cout << '\n';
return 0;
}
Ly8gZm9yd2FyZF9saXN0OjppbnNlcnRfYWZ0ZXIKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxmb3J3YXJkX2xpc3Q+CgppbnQgbWFpbiAoKQp7CiAgc3RkOjphcnJheTxpbnQsMz4gbXlhcnJheSA9IHsgMTEsIDIyLCAzMyB9OwogIHN0ZDo6Zm9yd2FyZF9saXN0PGludD4gbXlsaXN0OwogIGF1dG8gaXQgPSBteWxpc3QuYmVmb3JlX2JlZ2luKCk7CgogIGl0ID0gbXlsaXN0Lmluc2VydF9hZnRlciAoIG15bGlzdC5iZWZvcmVfYmVnaW4oKSwgMTAgKTsgICAgICAgICAgLy8gMTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBeICA8LSBpdAogIGl0ID0gbXlsaXN0Lmluc2VydF9hZnRlciAoIGl0LCAyLCAyMCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTAgMjAgMjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBeCiAgaXQgPSBteWxpc3QuaW5zZXJ0X2FmdGVyICggaXQsIG15YXJyYXkuYmVnaW4oKSwgbXlhcnJheS5lbmQoKSApOyAvLyAxMCAyMCAyMCAxMSAyMiAzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIF4KICBpdCA9IChteWxpc3QuYmVnaW4oKSk7ICAvLyAgXgogIGl0Kys7CiAgaXQgPSBteWxpc3QuaW5zZXJ0X2FmdGVyICggaXQsIHsxLDIsM30gKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMCAxIDIgMyAyMCAyMCAxMSAyMiAzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIF4KCiAgc3RkOjpjb3V0IDw8ICJteWxpc3QgY29udGFpbnM6IjsKICBmb3IgKGludCYgeDogbXlsaXN0KSBzdGQ6OmNvdXQgPDwgJyAnIDw8IHg7CiAgc3RkOjpjb3V0IDw8ICdcbic7CiAgcmV0dXJuIDA7Cn0=