【发布时间】:2014-10-02 05:21:44
【问题描述】:
在我正在处理的一些代码中,我有一个遍历地图的 for 循环:
for (auto it = map.begin(); it != map.end(); ++it) {
//do stuff here
}
我想知道是否有某种方法可以简洁地写出以下内容:
for (auto it = map.begin(); it != map.end(); ++it) {
//do stuff here
} else {
//Do something here since it was already equal to map.end()
}
我知道我可以重写为:
auto it = map.begin();
if (it != map.end(){
while ( it != map.end() ){
//do stuff here
++it;
}
} else {
//stuff
}
但是有没有更好的方法不涉及包装在 if 语句中?
【问题讨论】:
-
请问
for() {} else {}是什么?!? -
不,如果没有某种条件包装器,就没有办法做到这一点。
-
这是一个python和其他语言的语句,可以让你指定当循环没有被执行时会发生什么。
-
你的意思是Python风格的
for else? -
我认为这样的事情曾经提出过。
标签: c++ c++11 for-loop for-else