Решение о том, какую структуру данных использовать, зависит от:
- Тип данных для хранения
- Операции, которые вы собираетесь выполнять с данными
Обычный массив даст вам непрерывный блок памяти и произвольный доступ к элементам, однако вам необходимо заранее знать точное количество элементов, чтобы вы могли выделить массив соответствующего размера.
С std::vector
вы получаете произвольный доступ к данным, причем смежный, как и массивы, но вектор - это динамический массив, он увеличивается по мере добавления новых элементов и амортизируется постоянной сложностью, однако вставка / удаление элементов происходит быстрее на концах, так как все элементы должны быть перемещены.
С std::list
вы не получаете произвольный доступ, но вставка и удаление элементов происходит быстрее, поскольку для этого требуется просто перемещаться по ссылкам указателя.
Кроме того, векторы даже больше используются?
Это совсем не так.
Они очень широко используются и являются одной из наиболее широко используемых структур данных, предоставляемых стандартной библиотекой.