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循环解释如何执行此操作,那将非常有用,但从我读过的内容看起来更复杂.
非常感谢
这很简单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)