I'm pretty confused about lists. They work as I would expect except for removing elements.
The erase() method wants an iterator. But if I remove one element, the position of all the others after it will change! So it doesn't seem possible to quickly remove an element at any arbitrary position in the list.
In other languages I would do something like this:
link = link.push_back(object);
And then this would remove the object from the list:
link.Remove();
Is there any way to get that kind of fast removal with C++?