I know I can loop through a list of strings like this:
list::iterator Iterator;
for(Iterator = AllData.begin();
Iterator != AllData.end();
(*Iterator).property1
or Iterator->property1
It's as easy as Iterator->property
. Your first attempt is almost correct, it just needs some parentheses due to operator precedence: (*Iterator).property
In order to use for_each, you would have to lift the cout statments into a function or functor like so:
void printData(AllDataType &data)
{
cout << "\t" + data.property1 + "\n";
cout << "\t" + data.property2 + "\n";
}
for_each(AllData.begin(), AllData.end(), printData);