我需要根据一个布尔值,对一个std::vector
进行正向或反向处理。最优雅的方法是什么?在需要反向处理之前,我的代码如下:
BOOST_FOREACH(const CType &foo, vec) {
...
}
然而,现在我有一个看起来非常可怕的问题:
for (int i=undoing ? (vec.size()-1) : 0; undoing ? (i >= 0) : (i < vec.size()); undoing ? (i--) : (i++)) {
const CType &foo = vec[i];
...
}
有更好的方法吗?