创建固定大小队列的向量(提升循环队列)

时间:2015-01-26 10:45:16

标签: c++ boost vector queue

我有两个问题: 1.如何创建增强循环队列的向量? 2.我应该如何指出前者的矢量大小?

我尝试了以下操作,但收到错误

// Boost Circular Queue -- This works fine

boost::circular_buffer<pkt> pkt_queue(3);

// Vector of queues - This has errors, i also wish to initialize the vector


std::vector<pkt_queue> per_port_pkt_queue;

1 个答案:

答案 0 :(得分:1)

你想要一个队列矢量:

#include <boost/circular_buffer.hpp>

struct pkt { int data; };

int main() {
    // Boost Circular Queue -- This works fine
    typedef boost::circular_buffer<pkt> pkt_queue;

    pkt_queue a_queue(3);

    // Vector of queues - This has errors, i also wish to initialize the vector
    std::vector<pkt_queue> per_port_pkt_queue;

    per_port_pkt_queue.emplace_back(3);
    per_port_pkt_queue.emplace_back(3);
    per_port_pkt_queue.emplace_back(3);

    // or
    per_port_pkt_queue.assign(20, pkt_queue(3)); // twenty 3-element queues
}

查看 Live On Coliru