Я пытаюсь создать строку, используя элементы данных, хранящиеся в std::list, где я хочу, чтобы запятые помещались только между элементами (т.е. если элементы {A,B,C,D} в списке, результирующая строка должна быть «А, Б, В, Г».
Этот код не работает:
typedef std::list< shared_ptr<EventDataItem> > DataItemList;
// ...
std::string Compose(DataItemList& dilList)
{
std::stringstream ssDataSegment;
for(iterItems = dilList.begin();
iterItems != dilList.end();
iterItems++)
{
// Lookahead in list to see if next element is end
if((iterItems + 1) == dilList.end())
{
ssDataSegment << (*iterItems)->ToString();
}
else
{
ssDataSegment << (*iterItems)->ToString() << ",";
}
}
return ssDataSegment.str();
}
Как получить "следующий элемент" в std::list с помощью итератора? Я ожидаю, что это связанный список, почему я не могу перейти к следующему элементу?
for
:iterItems = dilList.end();
должно бытьiterItems != dilList.end();
. - person Fred Larson   schedule 23.04.2010