看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Code::block 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/2j1sR6 補充說明(Supplement): 中秋節快樂! 有兩個小問題麻煩前輩們指點! 1.原本的queue本來就可以寫成queue<int> myquue[2]<-----假設宣告是這樣 可以為陣列形式嗎? 2.如程式碼,如果想改變myquue[1].front.size的數字可以從address下手嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.102.197
Feis:1. 可. 2. 語法錯誤. 另外從 address 下手的意思是? 09/18 23:35
Feis:可利用對指向 queue 的指標做操作 (push、pop) 來改變 size() 09/18 23:38
handsome616:queue本身提供讀開頭和結尾的value,如果想取中間的值 09/18 23:49
handsome616:就得透過address來讀,有錯請指正! 09/18 23:49
Feis:你應該誤會些什麼. std::queue 不提供這樣介面. 換個容器 09/18 23:57
Feis:或自己包裝. 09/18 23:57
handsome616:這樣是不是說在程式碼中的28~32 09/19 00:01
Feis:建議你去看看 deque<>, deque<> 是 queue<> 的預設容器 09/19 00:02
handsome616:都不是myquue[1]內的東西? 09/19 00:02
Feis:抱歉, 我沒看到你有程式碼. 我誤會了. 我看一下. 09/19 00:03
Feis:不過我看完還是不知道你的用途?. 你只是想改 fornt().size ? 09/19 00:05
Feis:還是打算 "將來" 再改, 所以要把位址存起來? 09/19 00:05
handsome616:比如*(&myquue[1].front().size)的value是3125,但想改 09/19 00:06
Feis:跟 myqueue[1].front().size = 要改的值 有什麼不同? 09/19 00:07
handsome616:成3000的話不能直接裡面的數字,address還是原本的 09/19 00:08
Feis:此外, 你不能直接隨機存取 std::queue 裡面的東西. 只有頭尾 09/19 00:10
Feis:queue 中每個元素不一定在位址上連續 09/19 00:11
Feis:也就是 28~32 指向的位址不一定在 myqueue[1] 內 09/19 00:15
handsome616:謝謝 先看看deque的部分,有疑問可以再麻煩您嗎 09/19 00:15