如果我有这个清单,
typedef std::list<MyClass *> listMyClass;
Run Code Online (Sandbox Code Playgroud)
我如何迭代它们并获得该类中的方法?
这是我尝试过的,但事实并非如此:( MyClass :: PrintMeOut()是一个公共方法)
for(
listMyClass::iterator listMyClassIter = listMyClass.begin();
listMyClassIter != listMyClass.end();
listMyClassIter ++)
{
listMyClassIter->PrintMeOut();
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ork 11
for_each和函数指针:
std::for_each( listMyClass.begin(),
listMyClass.end(),
std::mem_fun(&MyClass::PrintMeOut)
);
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用for_each()构造而不是编写自己的循环.
它使它看起来整洁,并做了所有我需要额外代码的东西.
| 归档时间: |
|
| 查看次数: |
34359 次 |
| 最近记录: |