Я хочу использовать std :: string для динамической обработки строк. Данные добавляются и присоединяются к строке, иногда я не могу установить значение для символа в индексе i. Я не знаю, сколько символов будет добавлено в строку. Что-то вроде динамической коллекции в .NET. Когда я выделить зЬй :: строку в C++Инициализировать и использовать C++ std :: string as array of char
std::string s;
и попытаться установить элемент с индексом я для него:
s[0] = 'a';
Это будет через ошибки, связанные с памятью. Глупый способ инициализации его с данными существуют и заменить их позже:
std::string s = generate1000chars();
s[2] = 'c';
Есть ли способ, чтобы инициализировать строку, которая позволяет манипулировать символ с индексом I, как массив символов?
Вы должны [изменить размер] (http://www.cplusplus.com/reference/string/string/resize/) строки перед использованием. – Sergey
Также обратите внимание на 'push_back' и' operator + = ', если вы хотите добавить некоторые символы. – Sergey
Я имел в виду 'std :: string s (1000, 'a');', второй конструктор из [здесь] (http://en.cppreference.com/w/cpp/string/basic_string/basic_string). Конечно, он должен быть медленнее, чем просто изменять размер. – Sergey