list<string> mylist;
mylist.push_back("random stuff");
list<string>::iterator it;
it=mylist.begin();
string mystr;
//and this doesn't work:
mystr=*it;
Допустим, у меня есть list<string> mylist
, и у него есть 3 предмета.Поскольку я не могу работать с символами каждого элемента, я должен скопировать элемент, который я хочу, в простую строку или буфер символов.Но я вообще не могу найти выход, я пробовал и с указателями на массивы.Так есть ли способ скопировать эти элементы из списка?
Редактировать: Да, извините, пересмотрел мой код, проект, и обнаружил, что ошибка была где-то еще, я копировал из listmylist встрока mystr, с помощью итератора, и я использовал цикл for, у которого было условие останавливаться, когда он встречал символ '\ 0', вставленный, когда я копировал его, он не копировал '\ 0' вмоя строка, поэтому, в конце концов, мне пришлось поставить ее вручную, чтобы функция не работала вне строки. Хороший код:
string temp;
list<string>::iterator it;
it=mylist.begin();//let's say myslist has "random stuff"
temp=*it;//this does not copy the '\0'
temp+='\0';//so i add it myself
for(int n(0);temp[n]!='\0';n++)//now the for loop stops properly
cout<<temp[n];