具有多个值的C ++队列

时间:2013-01-15 07:07:03

标签: c++ data-structures

我正在寻找具有多个值的队列,但默认std::queue仅支持两个值,如

queue<int, int> myqueue;

我有八个元素,并且想要像这样的队列(PUSH,POP等)的相同功能

queue<int, int, int, int, int, int, int, int> myqueue;

2 个答案:

答案 0 :(得分:2)

您没有正确使用队列。通过指定queue<int>,您可以使用pushpop插入任意数量的元素,另请参阅:http://en.cppreference.com/w/cpp/container/queue

如果你想要一个可以容纳8个元素的容器,你可能想要使用一个固定大小的boost :: circular_buffer:http://www.boost.org/doc/libs/1_52_0/libs/circular_buffer/doc/circular_buffer.html

如果要一次推送8个元素,只需使用std::vector作为队列项,或使用8元组tuple<int, int, int, int, int, int, int, int>或具有数组成员的结构:struct EightInt { int data [8]; }

答案 1 :(得分:0)

只需将std::vector存储在队列中即可。或者,如果值具有不同的含义,则只需创建自定义结构并将其存储在队列中。顺便说一句,std::queue存储一个值意味着每个元素都是一个值(如果这就是你的意思)。