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

时间:2012-12-12 15:57:57

标签: 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
    }
}

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

此致

1 个答案:

答案 0 :(得分:11)

使用front阅读该项目,并使用pop_front将其删除。

current = myDeque.front();
myDeque.pop_front();

这种做事方式似乎适得其反,但有必要让deque提供足够的exception-safety guarantees