Should every programmer make his/her own vector, list, and so on? Oh, of course not. So some time back, the Standard Template Library (STL) was put into the standard. In STL you’ll find containers like list and vector; strings, as we already use them; and commonly needed functions like swap, find, and copy.
You’ll also find an annoying emphasis on efficiency. I say “annoying” because STL promotes efficiency by disabling inefficient things. If you want to use operator[] with a list, you can forget it; it’s too slow (O(N) time, if you do O notation). If you want [], the makers of STL ...