Подтвердить что ты не робот

Java ArrayList в С++

В Java я могу сделать

List<String> data = new ArrayList<String>();
data.add("my name");

Как бы я сделал то же самое в С++?

4b9b3361

Ответ 1

Используйте std::vector и std::string:

#include <vector>  //for std::vector
#include <string>  //for std::string

std::vector<std::string> data;
data.push_back("my name");

Обратите внимание, что в С++ вам не нужно использовать 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

Подробнее читайте в документации:


Стандартная библиотека С++ содержит много контейнеров. В зависимости от ситуации вы должны выбрать тот, который наилучшим образом соответствует вашей цели. Я не могу говорить о каждом из них. Но вот диаграмма, которая помогает много (источник):

enter image description here

Ответ 2

Все вместе в одной строке вектор myVec (1, "привет" );