Это на самом деле вопрос XY. Хеймид должен сказать, в чем проблема, которую он решает, а не то, что он должен был закончить, чтобы решить проблему. На самом деле задача? Преобразовать список строк в массив строк c? если да, то должно быть сделано несколько таким образом (к сожалению, нужно скопировать данные)
char** arr = new char*[_list.size()];
int i = 0;
for(auto it = _list.begin(); it != _list.end(); ++it, +i)
{
const char *s = it->c_str(); // should not be modified or deleted
const size_t l = strlen(s);
arr[i] = new char [l+1];
std::copy(&s[0],&s[l], &(arr[i][0]));
}
...
ли вам нужно получить я-й элемент из списка?
auto it = _list.begin();
std::advance(it, i);
const char *a = it->c_str();
если вы делаете это в цикле для каждого элемента, просто увеличивайте его.
конкатенировать все строки в одном? перебирать список, вычислять общую длину, затем выделять массив символов этой длины и копировать строку один за другим. У меня есть неопределенная память, что повышение получило это как алгоритм :: join уже, но stl требует длинный и фрилли код, не может разработать, что на телефоне, тот, кто может редактировать ответ, приветствуется. в различной форме этот вопрос с десятком решений представлен на стеке: How to implode a vector of strings into a string (the elegant way)
Вы не можете изменить значение 'const' – user463035818
* Исправлены некоторые ошибки *. – SergeyA
Подождите, вы хотите преобразовать список нескольких строк в одну C-строку? –