Разница между обычными массивами C++ и std::vector заключается в их характеристиках и управлении памятью:                                                                          iamsorush.com                                                                                               www.cyberforum.ru                      
  - Обычные массивы требуют ручного выделения и освобождения памяти.                                                                          www.geeksforgeeks.org                       Их размер должен быть известен на этапе компиляции, и их нельзя сжать или расширить.                                                                          www.cyberforum.ru                      
- std::vector — это шаблонный класс, который инкапсулирует динамический массив, хранящийся в куче.                                                                          www.cyberforum.ru                       Механика сжатия/расширения автоматизирована и происходит при удалении/добавлении элементов.                                                                          www.cyberforum.ru                       Память вектора управляется C++, при выходе из области видимости все элементы автоматически разрушаются.                                                                          iamsorush.com                      
Таким образом, std::vector подходит для динамических массивов любого размера, размер которых может меняться во время выполнения, а std::array — для небольших массивов фиксированного размера.                                                                          iamsorush.com