给出以下代码:
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
方法 。我怎样才能获得元素(在前面)呢?
此致
答案 0 :(得分:11)
使用front
阅读该项目,并使用pop_front
将其删除。
current = myDeque.front();
myDeque.pop_front();
这种做事方式似乎适得其反,但有必要让deque
提供足够的exception-safety guarantees。