我要做的是创建一个读取器类,它将获取第一个元素,对其进行评估然后将其删除。这意味着必须在前面而不是后面添加项目。
这是我需要做的。伪代码。
void Add( int messageCode ){ if(m_pList && messageCode!=0xFF)m_pList->push_front(messageCode); } // Adding a message; Added check if input is 0xFF.
而不是
void Add( int messageCode ){ if(m_pList && messageCode!=0xFF)m_pList->push_back(messageCode); } // Adding a message; Added check if input is 0xFF.
答案 0 :(得分:4)
如果您需要FIFO,请查看std::deque
类及其方法,例如push_front
或emplace_front
。
如果您需要LIFO,请查看std::stack
课程。
答案 1 :(得分:1)
两件事。
std::deque
具有push_front
功能。它还有一个pop_front
函数来删除它。实际上,从前面快速插入/移除是deque
的一半。
另一件事就是:你为什么要从前面推/弹?推/弹到后面有什么问题吗?您只需使用std::vector
,push_back
和pop_back
,就可以像常规堆栈一样使用back
。推到前面几乎完全相同。除非你需要以某种方式访问非前端元素,否则这似乎是一种完全合法的处理方式。
答案 2 :(得分:0)