#include <vector>
#include <iostream>
int main()
{
std::vector<int> v { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
auto it = v.begin() + 5;
// replace the current element with the back of the vector,
// then shrink the size of the vector by 1.
*it = std::move(v.back());
for (auto n : v) {
std::cout << n << " ";
}
v.pop_back();
for (auto n : v) {
std::cout << n << " ";
}
std::cout << "\n";
}
ICAgICNpbmNsdWRlIDx2ZWN0b3I+CiAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIHN0ZDo6dmVjdG9yPGludD4gdiB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwIH07CiAgICAgICAgYXV0byBpdCA9IHYuYmVnaW4oKSArIDU7CiAgICAgICAgLy8gcmVwbGFjZSB0aGUgY3VycmVudCBlbGVtZW50IHdpdGggdGhlIGJhY2sgb2YgdGhlIHZlY3RvciwKICAgICAgICAvLyB0aGVuIHNocmluayB0aGUgc2l6ZSBvZiB0aGUgdmVjdG9yIGJ5IDEuCiAgICAgICAgKml0ID0gc3RkOjptb3ZlKHYuYmFjaygpKTsKICAgICAgICBmb3IgKGF1dG8gbiA6IHYpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IG4gPDwgIiAiOwogICAgICAgIH0KICAgICAgICB2LnBvcF9iYWNrKCk7CgogICAgICAgIGZvciAoYXV0byBuIDogdikgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgbiA8PCAiICI7CiAgICAgICAgfQogICAgICAgIHN0ZDo6Y291dCA8PCAiXG4iOwogICAgfQo=