Вы после следующего или хотите знать, как читать с консоли ввода и хранить в строке (которая затем сохраняется в списке, я предполагаю), это первый случай, как хранить строки в списке (и вывод содержимое списка):
#include <iostream>
#include <string>
#include <list>
using std::string;
using std::list;
using std::cout;
using std::endl;
list<string> strlist;
strlist.push_back(string("string one"));
strlist.push_back(string("string two"));
strlist.push_back(string("and so on"));
for (list<string>::iterator it = strlist.begin(); it != strlist.end(); ++it)
{
std::cout << (*it) << std::endl;
}
Примечание: список содержит копии строк, что означает, что вы в конечном итоге копируете строки, когда назначаете их в список и возвращаете их из списка. Чтобы избежать этого, вы можете выделить память для строки и оставить в списке только указатели:
list<string*> ls;
ls.push_back(new string("string one"));
и т. Д.
Это также работает, выше приведено более подробное описание того, как получить доступ к элементам списка, в алгоритме копирования все это происходит за кулисами:
copy( strlist.begin(), strlist.end(), ostream_iterator<string>( cout, ", " ) );