Обратите внимание, что в С++ вам не нужно использовать new каждый раз, когда вы создаете объект. Объект data инициализируется по умолчанию, вызывая конструктор по умолчанию std::vector. Таким образом, приведенный выше код в порядке.
В С++, moto: Избегайте new как можно больше.
Если вы знаете размер уже во время компиляции, и массив не нужно расти, вы можете использовать std::array:
#include <array> //for std::array
std::array<std::string, N> data; //N is compile-time constant
data[i] = "my name"; //for i >=0 and i < N
Стандартная библиотека С++ содержит много контейнеров. В зависимости от ситуации вы должны выбрать тот, который наилучшим образом соответствует вашей цели. Я не могу говорить о каждом из них. Но вот диаграмма, которая помогает много (источник):
Ответ 2
Все вместе в одной строке
вектор myVec (1, "привет" );