【发布时间】:2016-08-19 19:37:45
【问题描述】:
基于条件的循环选择。
if(valid)
for (std::multimap<int,int>::reverse_iterator rit=id_count.rbegin(); mcount<10 && rit!=id_count.rend();++rit)
else
for (std::multimap<int,int>::iterator rit=id_match.begin(); mcount<10 && rit!=id_match.end();++rit)
{
//this is common for both for loop
}
如何在 C++ 中实现这一点?
【问题讨论】:
-
在循环体内使用通用函数?
-
如果您可以访问 c++14,请使用
std::for_each,并传递一个通用 lambda。 -
@StoryTeller:
std::for_each附加终止条件?那可能会变得非常丑陋/效率低下 -
@MikeMB,哦,我错过了。而且我不敢相信标准库没有任何带有终止构造的通用访问。好吧,有
std::find_if,但这只是一个 hack。
标签: c++ if-statement for-loop