std::vector unsigned int size = v.size();
// takes in iterator
v.insert(v.begin(), value); // add to head O(n)
v.insert(v.begin()+index, value); // add to index o(n)
v.push_back(value); // add to tail o(1)
int head = v.front(); // get head o(1)
or
int head = v[0];
int val = v.at(index);
int val = v[index];
int tail = v.back();
int tail = v[v.size()-1];
// iterating
// erase takes…