我有一个while循环,我想用std / boost算法替换(主要是为了我的学习,沿着Sean Parent' s no-raw-loops maxim)。
std::queue q;
while (! q.empty()) {
auto front = q.front();
q.pop();
do_stuff_with_front();
potentially_insert_more_into_q();
}
正如您所看到的,我有条件地将更多元素排入循环中;想想迷宫遍历。什么std / boost算法可能适合这个?
答案 0 :(得分:7)
我想不出任何算法或替代方法会产生比你已经编写的while循环更清晰的代码。我记得所有标准算法都在固定范围内工作,因为你的代码添加了与标准算法接口不一致的元素。