我习惯于支持foreach循环的其他语言或基于范围的C++ 11中的语言。我试图在C++ 98中模拟它。主要是因为我不喜欢在每次需要该对象时使用(*it)
表示法。实现基于范围的旧版C++
说我有这个C++代码11:
std::vector<int> myVec{...};
for(auto& outerLoopVar : myVec)
{
for(auto& innerLoopVar : myVec)
{
// do logic
}
}
有没有更好的方式来复制,在C++ 98比做这样的事情?
std::vector<int> myVec;
// populate vector
for(std::vector<int>::iterator it1 = myVec.begin(); it1 < myVec.end(); it1++)
{
int& outerLoopVar = *it1;
for(std::vector<int>::iterator it2 = myVec.begin(); it2 < myVec.end(); it2++)
{
int& innerLoopVar = *it2;
// do logic
}
}
如何[升压的foreach(http://www.boost.org/doc/libs/1_56_0/doc/html/foreach.html)? – 2014-09-26 15:44:26