i'm coming into C++ from Java, and have a common design situation in which i have an element (a non-primitive) that i'd like to remove from a std::vector.
in Java, i'd write something like: arrayList.remove(arrayList.indexOf(myClassInstance));
in C++, with a std::vector, what's the best / most performant / cleanest way of doing this?
the best thing i can think of is to create a reference to the instance i'm searching for, and then iterate through the vector until i find that reference. essentially, to compare the memory address of each element in the vector with the reference until i get a match.
am i on the right track? or is there a better way of doing this? (perhaps using a different std container, i've only used std::vector so far.)
#include <algorithm>
std::vector<Foo>::iterator it = std::find(vec.begin(), vec.end(), foo_2b_found);
if (it != vec.end()) vec.erase(it);