动态创建,命名和放置队列

时间:2012-11-07 23:26:39

标签: c++ dynamic struct queue

我有一个程序,用户输入他们想要的队列数。我的程序是否有可能以某种方式获取该数字并动态创建队列(名称和所有)。此外,一旦创建了队列,我希望能够遍历它们,所以我想将它们放在一个名为 arrayOfQueues 的数组中。最后要注意的是队列中包含一个名为 Process 的结构。

以下代码可能有助于更好地设置我的方案:

更新:

void function(int numQueues){
vector<queue<Process>> vectorOfQueues;
for(int i=0; i<numQueues; i++){
    vectorOfQueues.push_back(queue<Process>());
}

1 个答案:

答案 0 :(得分:3)

如果您只想创建一个可迭代的队列集合,请执行Kerrek suggests并使用vector个队列。但是你说你想要命名它们。在这种情况下,您可能希望将它们保存在std::unordered_map<std::string,std::queue<Process>>中,以便通过其名称访问它们。

关于您的更新,它太复杂了。同样可以更容易实现:

std::vector<std::queue<Process>> vectorOfQueues(numQueues,std::queue<Process>{});

std::vector<std::queue<Process>> vectorOfQueues;
vectorOfQueues.resize(numQueues);

就足够了。