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

问题描述 投票:0回答:1

给出以下代码:

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
方法。那么我怎样才能获得元素(在前面)呢?

c++ stl deque
1个回答
15
投票

使用

front
读取该项目,然后使用
pop_front
将其删除。

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

这种做事方式可能看起来适得其反,但为了

deque
提供足够的异常安全保证,这是必要的。

© www.soinside.com 2019 - 2024. All rights reserved.