【发布时间】:2014-06-11 11:39:59
【问题描述】:
我的代码如下所示:
bool var = some condition...
if( var )
{
for( int i=0; i<10; ++i )
{
//execute some code ...
}
}
else
{
for( int i=9; i>=0; --i )
{
//execute some other code...
}
}
但是,需要在 for 循环中执行的代码几乎完全相同,所以我不想写两次。我知道我可以这样做:
bool var = some condition...
for( int i = (var ? 0 : 9 ); (var ? i<10 : i>=0 ); (var ? ++i : --i ) )
{
//Execute my code
}
但这是一个非常不优雅的解决方案。
有没有一种更简洁、更优雅的方式来做到这一点?我检查了 std::iterator 但我认为这不是我需要的。
【问题讨论】:
-
使用迭代器需要使用同时具有正向和反向迭代器的容器,但其中很多都有。
标签: c++ for-loop conditional-statements