Huh? What do you mean?
I meant using char arrays to protect strings against resizing makes no sense whatsoever, it's not just a bad choice because it's C
Actually you'd be surprised. Whilst theoretically list does do the removal quicker, the search for what to remove is still O(N) for both vector and list, and vector has better cache coherence so performs this search significantly faster due to less cache misses. Fast enough that vector can outperform list overall, simply because all those cache misses add up.
I cannot emphasize this enough. A lot of people who decide between STL containers only look for asymptotic time complexities and forget about the whole other range of factors which are at least as important.
Just use
std::vector and change the container if you encounter problems. When there are few elements (up to hundreds or even thousands), everything is blazingly fast so that you don't even care about linear search. StDH, apparently you missed my advice concerning efficient removal in
std::vector. Removing elements in the middle alone is not a reason to choose
std::list (let alone
std::deque, where it's not even more efficient in theory).