如何从双端队列中提取元素?

JAN*_*JAN 0 c++ stl deque

给出以下代码:

void World::extractStates(deque<string> myDeque)
{
    unsigned int i = 0;
    string current; // current extracted string

    while (i < myDeque.size())      // run on the entire vector and extract all the elements
    {
        current =  myDeque.pop_front(); // doesn't work 
        // do more stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在每个迭代中提取前面的元素,但这pop_front()是一个void 方法.我怎样才能获得元素(在前面)呢?

问候

Jon*_*Jon 11

使用front阅读项目,并pop_front删除它.

current = myDeque.front();
myDeque.pop_front();
Run Code Online (Sandbox Code Playgroud)

这种做事方式似乎适得其反,但为了deque提供足够的例外安全保障是必要的.