我正在寻找具有多个值的队列,但默认值std::queue
仅支持两个值,例如
queue<int, int> myqueue;
我有八个元素,并且想要像这样的队列(PUSH、POP 等)的相同功能
queue<int, int, int, int, int, int, int, int> myqueue;
我正在寻找具有多个值的队列,但默认值std::queue
仅支持两个值,例如
queue<int, int> myqueue;
我有八个元素,并且想要像这样的队列(PUSH、POP 等)的相同功能
queue<int, int, int, int, int, int, int, int> myqueue;
您没有正确使用队列。通过指定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 个元素,只需使用 astd::vector
作为队列项,或者使用 8 元组tuple<int, int, int, int, int, int, int, int>
或带有数组成员的结构:struct EightInt { int data [8]; }
。
例如,只需存储std::vector
在队列中。或者,如果这些值具有不同的含义,只需创建一个自定义结构并将其存储在队列中即可。顺便说一句,std::queue
存储一个值意味着每个元素都是一个值(如果这就是你的意思)。