我似乎無法弄清楚爲什麼這不起作用。我試圖做一個指針類型的隊列,它失敗了。我有一個教室,我想使指針間的隊列..所以我所做的:在C++中製作一個STL指針類型隊列
queue<*Room> bfsRooms;
這給我的錯誤:
`*' cannot appear in a constant-expression
這是否意味着它是不可能的創建一個STL指針隊列?
我似乎無法弄清楚爲什麼這不起作用。我試圖做一個指針類型的隊列,它失敗了。我有一個教室,我想使指針間的隊列..所以我所做的:在C++中製作一個STL指針類型隊列
queue<*Room> bfsRooms;
這給我的錯誤:
`*' cannot appear in a constant-expression
這是否意味着它是不可能的創建一個STL指針隊列?
不,它應該沒問題,你應該確實鏈接確切的代碼和確切的錯誤,所以我們可以幫助你更好。
也就是說指針的隊列將是這個樣子:
Room r;
std::queue<Room*> rooms;
rooms.push(&r);
編輯:值得注意的是,如果這些指針擁有自己的對象,他們指向你真的應該封裝指針的智能指針,像這樣:
std::queue<std::unique_ptr<Room>> rooms;
這遵守RAII的原則,並會自動清理資源。
好的,謝謝,我是C++ noob,並沒有意識到它應該是Room *而不是* Room,這解決了我的問題。我覺得啞巴哈哈。 –
@ThomasColgrove如果你可以標記它是正確的,如果它有幫助,所以它可以幫助其他人在未來 – 111111
指針的Q值是多少?你的意思是指針的常量嗎? – billz
請向我們顯示您的代碼。請注意'隊列'不是一個指針隊列,除非房間是指針類型的'typedef'。 –
pndc
@billz是「指針的常量」集體名詞嗎? – Caribou