创建固定大小队列的向量(增强循环队列)

Creating a vector of fixed sized queue (boost circular queue)

我有两个问题: 1. 如何创建一个 boost 循环队列向量? 2.前者的vector大小应该怎么表示?

我尝试了以下但出现错误

// 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;

您需要一个队列向量:

#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