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

问候

4

1 回答 1

13

用于front读取项目并将pop_front其删除。

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

这种做事方式似乎适得其反,但为了deque提供足够的异常安全保证,这是必要的。

于 2012-12-12T15:59:05.547 回答