std::list does not support indexing
std::vector does
seen from T1

seen from United States
seen from Türkiye

seen from United States
seen from China

seen from Türkiye
seen from Germany

seen from United States
seen from Italy
seen from United States
seen from United States
seen from United Kingdom
seen from Türkiye
seen from Germany
seen from United Kingdom

seen from Kazakhstan
seen from Türkiye
seen from China

seen from Malaysia
seen from Türkiye
std::list does not support indexing
std::vector does
std::vector.erase
erase returns an iterator that is positioned on the element that follows the one that we just erased
std::vector.erase is slow
O(n^2) algorithm
Because vectors use an array as their underlying storage, erasing elements in positions other than the vector end causes the container to relocate all the elements after the segment erased to their new positions. This is generally an inefficient operation compared to the one performed for the same operation by other kinds of sequence containers (such as list or forward_list).
std::vector is optimized for fast random access
How to initialize std::vector efficiently
If you need a vector of a fixed size and don't care about default initialization of your elements, don't do
std::vector<type> vectorname(num_elements); //O(n)
Instead do this:
std::vector<type> vectorname; vectorname.reserve(num_ekements) //O(1)
vector<bool> has taken a lot of heat over the past decade, and not without reason. However I believe it is way past time to draw back some of the criticism and explore this area with a dispassionate scrutiny of detail.