C++如何遍历结构列表并访问其属性

Non*_*biz 4 c++ foreach struct loops list

我知道我可以遍历这样的字符串列表:

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

但我怎么能这样做呢?

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

或者,如果有人可以通过for_each循环解释如何执行此操作,那将非常有用,但从我读过的内容看起来更复杂.

非常感谢

Jos*_*ews 9

这很简单Iterator->property.您的第一次尝试几乎是正确的,由于运算符优先级,它只需要一些括号:(*Iterator).property

为了使用for_each,你必须将cout语句提升为函数或函子,如下所示:

void printData(AllDataType &data)
{
    cout << "\t" + data.property1 + "\n";
    cout << "\t" + data.property2 + "\n";
}

for_each(AllData.begin(), AllData.end(), printData);
Run Code Online (Sandbox Code Playgroud)