TL
1 2 3 4 5 6 7 8
4 2 3 1 8 6 7 5
так, что ли?
Size: a a a
TL
1 2 3 4 5 6 7 8
4 2 3 1 8 6 7 5
TL
J
1 2 3 4 5 6 7 8
4 2 3 1 8 6 7 5
TL
TL
TL
1 2 3 4 5 6 7 8 9 A B
J
TL
TL
TL
TL
М
size_t sz = list.size(); //или посчитать вручную в цикле для односвязного списка
auto next_it = list.begin();
for (auto i = 0, it = list.begin(); i < sz; i += 3, it = next_it)
{
if (i + 3 < sz)
{
std::advance(next_it, 3);
std::swap(it, next_it);
}
}
J
М
TL
J
TL
iterations
TL