使用 BOOST 的 ForEach 和我自己的自定义 #define 宏来迭代容器有什么区别?
矿:
#define iterate(i,x) for(typeof(x.begin()) i=x.begin();i!=x.end();++i)
boost:
#include <string>
#include <iostream>
#include <boost/foreach.hpp>
int main()
{
std::string hello( "Hello, world!" );
BOOST_FOREACH( char ch, hello )
{
std::cout << ch;
}
return 0;
}
请解释哪种方法更好,为什么?