用std/boost算法替换循环中的C++

Amb*_*nan 1 c++

我有一个while循环,我想用std/boost算法取代(主要是为了我的学习,沿着Sean Parent的无原始循环格言).

std::queue q;
while (! q.empty()) {
    auto front = q.front();
    q.pop();
    do_stuff_with_front();
    potentially_insert_more_into_q();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我有条件地将更多元素排入循环中; 想想迷宫遍历.什么std/boost算法可能适合这个?

Mar*_*k B 7

我想不出任何算法或替代方法会产生比你已经编写的while循环更清晰的代码.我记得所有标准算法都在固定范围内工作,因为你的代码添加了与标准算法接口不一致的元素.