2012-11-07 39 views
0

我有一個程序,用戶輸入他們想要的隊列數。是否有可能讓我的程序以某種方式獲取該數字並動態創建隊列(名稱和全部)。另外,一旦創建了隊列,我希望能夠遍歷它們,所以我想將它們放入一個名爲arrayOfQueues的數組中。最後需要注意的是隊列保存一個稱爲進程的結構。動態創建,命名和放置隊列

下面的代碼可能會幫助建立我的情況比我更可以鍵入:

更新:

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

使用'std :: vector >'。 –

+0

@KerrekSB這是一個很好的建議,謝謝。 –

回答

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

就足夠了。

+0

我的編輯代碼能夠更準確地反映您所得到的內容嗎? –

+0

@Rick_Sch:看我的編輯。您可以直接創建具有適當大小的隊列。你也可以使用'std :: vector :: resize'成員函數來改變向量的大小,並讓所有隊列默認構造(清空隊列)。 – bitmask

+0

非常感謝。今晚我學到了很多東西! –