#include <iostream>
#include <vector>
using namespace std;
struct Node
{
int* val;
};
// Util method which prints vector
void printVector(vector<Node>& v)
{
vector<Node>::iterator it;
for(it = v.begin(); it != v.end(); ++it)
{
cout << *((*it).val) << ", ";
}
cout << endl;
}
int main() {
vector<Node> v;
// Creating a dummy vector
v.push_back(Node()); v[0].val = new int(0);
v.push_back(Node()); v[1].val = new int(10);
v.push_back(Node()); v[2].val = new int(20);
v.push_back(Node()); v[3].val = new int(30);
v.push_back(Node()); v[4].val = new int(40);
v.push_back(Node()); v[5].val = new int(50);
v.push_back(Node()); v[6].val = new int(60);
cout << "Vector before insertion - ";
printVector(v); // Prints - 0, 10, 20, 30, 40, 50, 60,
// Insert the element of given index to the beginning
v.insert(v.begin(), std::move(v[4]));
cout << "Vector after insertion - ";
printVector(v); // Prints - 30, 0, 10, 20, 30, 40, 50, 60,
// Why did 30 get inserted at the beggning and not 40?
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBOb2RlCnsKCWludCogdmFsOwp9OwoKLy8gVXRpbCBtZXRob2Qgd2hpY2ggcHJpbnRzIHZlY3Rvcgp2b2lkIHByaW50VmVjdG9yKHZlY3RvcjxOb2RlPiYgdikKewoJdmVjdG9yPE5vZGU+OjppdGVyYXRvciBpdDsKCQoJZm9yKGl0ID0gdi5iZWdpbigpOyBpdCAhPSB2LmVuZCgpOyArK2l0KQoJewoJCWNvdXQgPDwgKigoKml0KS52YWwpIDw8ICIsICI7Cgl9CgkKCWNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8Tm9kZT4gdjsKCQoJLy8gQ3JlYXRpbmcgYSBkdW1teSB2ZWN0b3IKCXYucHVzaF9iYWNrKE5vZGUoKSk7IHZbMF0udmFsID0gbmV3IGludCgwKTsKCXYucHVzaF9iYWNrKE5vZGUoKSk7IHZbMV0udmFsID0gbmV3IGludCgxMCk7Cgl2LnB1c2hfYmFjayhOb2RlKCkpOyB2WzJdLnZhbCA9IG5ldyBpbnQoMjApOwoJdi5wdXNoX2JhY2soTm9kZSgpKTsgdlszXS52YWwgPSBuZXcgaW50KDMwKTsKCXYucHVzaF9iYWNrKE5vZGUoKSk7IHZbNF0udmFsID0gbmV3IGludCg0MCk7Cgl2LnB1c2hfYmFjayhOb2RlKCkpOyB2WzVdLnZhbCA9IG5ldyBpbnQoNTApOwoJdi5wdXNoX2JhY2soTm9kZSgpKTsgdls2XS52YWwgPSBuZXcgaW50KDYwKTsKCQoJY291dCA8PCAiVmVjdG9yIGJlZm9yZSBpbnNlcnRpb24gLSAiOwoJcHJpbnRWZWN0b3Iodik7IC8vIFByaW50cyAtIDAsIDEwLCAyMCwgMzAsIDQwLCA1MCwgNjAsCgkKCS8vIEluc2VydCB0aGUgZWxlbWVudCBvZiBnaXZlbiBpbmRleCB0byB0aGUgYmVnaW5uaW5nCgl2Lmluc2VydCh2LmJlZ2luKCksIHN0ZDo6bW92ZSh2WzRdKSk7CgkKCWNvdXQgPDwgIlZlY3RvciBhZnRlciBpbnNlcnRpb24gLSAiOwoJcHJpbnRWZWN0b3Iodik7IC8vIFByaW50cyAtIDMwLCAwLCAxMCwgMjAsIDMwLCA0MCwgNTAsIDYwLAoJLy8gV2h5IGRpZCAzMCBnZXQgaW5zZXJ0ZWQgYXQgdGhlIGJlZ2duaW5nIGFuZCBub3QgNDA/CgkKCXJldHVybiAwOwp9
Vector before insertion - 0, 10, 20, 30, 40, 50, 60,
Vector after insertion - 30, 0, 10, 20, 30, 40, 50, 60,