#include #include #include #include using namespace std; template void print(vector v) { for(auto it = v.cbegin(); it!=v.cend(); it++) cout << setw(3) << *it; cout << endl; } int main() { vector ints; // initially zero size for(int i=0; i<10; i++) { ints.push_back(i+1); // insert to the end - very fast ints.insert(ints.begin(),i+1); // insert to the beginning - extremely slow } print(ints); while(ints.size() > 0) { auto middle = ints.begin() + ints.size()/2 - 1; ints.erase(middle, middle+2); // erase position middle, middle+1 print(ints); } }