Estoy intentando construir una cadena usando elementos de datos almacenados en una lista std ::, donde quiero que las comas se coloquen solo entre los elementos (es decir, si los elementos son {A, B , C, D} en la lista, la cadena resultante debe ser "a, B, C, D"std :: list iterator: obtener el siguiente elemento
Este código no funciona:.
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();
}
¿Cómo llego a "la de próxima item "in a std :: list using iterator?" Esperaría que sea una lista enlazada, ¿por qué no puedo obtener el siguiente artículo?
También tiene un error en su bucle 'for':' iterItems = dilList.end(); 'debe ser' iterItems! = DilList.end(); '. –
@Fred - cierto. Gracias por señalar eso. –
Posible duplicado de: http://stackoverflow.com/questions/3673684/peek-the-next-element-in-stl-container –