Quote:
What I need to do is remove an element from anywhere in the list but it seems like I can only use pop_back() to remove the end element
A vector is not referred to as a list. The reason for that is that there is another STL container called a <list>, which is a linked list. A list is actually what you should be using instead of a vector. Erasing an element in a vector, means the vector has to take all the elements to the right of the removed element and shuffle them to the left in order to fill the gap. That is inefficient.