【发布时间】:2012-05-29 19:16:47
【问题描述】:
我有一个队列。如果它超过 X 大小,当我推送一个元素时,我想删除队列的第一个元素。 (将弹出的最后一个元素和推入的第一个元素)
void ClientPlayerManager::queueTableMessage( const std::string& playerName, const std::string& message )
{
m_tableQ.push(std::make_pair(playerName,message));
if(m_tableQ.size() > m_maxTableMessages)
{
//m_tableQ.pop_back(); does not exist
}
}
有没有办法用标准队列做到这一点?
谢谢
【问题讨论】:
-
在 FIFO 队列中,最后一个被弹出的元素与第一个被推入的元素在另一端。你想要哪个?
-
是的,这很令人困惑。为什么不直接使用 push 和 pop 而忘记它呢?
标签: c++ data-structures queue