C ++ Cómo recorrer una lista de estructuras y acceder a sus propiedades

Sé que puedo recorrer una lista de cadenas como esta:

list<string>::iterator Iterator;
 for(Iterator = AllData.begin(); 
   Iterator != AllData.end();
   Iterator++)
 {
  cout << "\t" + *Iterator + "\n";
 }

Pero, ¿cómo puedo hacer algo como esto?

list<CollectedData>::iterator Iterator;
 for(Iterator = AllData.begin(); 
   Iterator != AllData.end();
   Iterator++)
 {
  cout << "\t" + *Iterator.property1 + "\n";
  cout << "\t" + *Iterator.property2 + "\n";
 }

o si alguien puede explicar cómo hacer esto con unafor_each bucle, eso sería muy útil también, pero parecía más complicado de lo que he leído.

Muchas gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta