1

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

queue<int, int> myqueue;

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

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

2 回答 2

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 个元素,只需使用 astd::vector作为队列项,或者使用 8 元组tuple<int, int, int, int, int, int, int, int>或带有数组成员的结构:struct EightInt { int data [8]; }

于 2013-01-15T07:10:21.793 回答
0

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

于 2013-01-15T07:11:37.453 回答