我正在寻找具有多个值的队列,但默认std::queue
仅支持两个值,如
queue<int, int> myqueue;
我有八个元素,并且想要像这样的队列(PUSH,POP等)的相同功能
queue<int, int, int, int, int, int, int, int> myqueue;
答案 0 :(得分:2)
您没有正确使用队列。通过指定queue<int>
,您可以使用push
和pop
插入任意数量的元素,另请参阅: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
存储一个值意味着每个元素都是一个值(如果这就是你的意思)。