Ваш вектор строк string_list
std::vector<std::string> string_list;
пуст, т. Е. Не содержит ни элемента, ни строки вообще, size()
для этого std::vector
вернет ноль.
Затем в утверждении:
string_list[0] = "abc";
Вы пишете в элемент вектора, который не существует и который приводит к неопределенному поведению (в вашем случае, программа падает).
Попробуйте вместо этого инициализировать вектор следующим образом:
std::vector<std::string> string_list(1);
Таким образом, вектор string_list
будет содержать одну пустую строку (т. Е. Созданный по умолчанию объект std::string
),доступ к которому вы можете получить, используя operator[]
(как вы уже сделали) для вашего вектора строк string_list
:
string_list[0] = "abc";
Делая это, вы используете оператор присваивания этой пустой строки.