[問題] queue and struct

看板C_and_CPP (C/C++)作者 (豆花伯爵)時間12年前 (2013/09/18 23:29), 編輯推噓0(0019)
留言19則, 2人參與, 最新討論串1/1
開發平台(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

09/18 23:35, , 1F
1. 可. 2. 語法錯誤. 另外從 address 下手的意思是?
09/18 23:35, 1F

09/18 23:38, , 2F
可利用對指向 queue 的指標做操作 (push、pop) 來改變 size()
09/18 23:38, 2F

09/18 23:49, , 3F
queue本身提供讀開頭和結尾的value,如果想取中間的值
09/18 23:49, 3F

09/18 23:49, , 4F
就得透過address來讀,有錯請指正!
09/18 23:49, 4F

09/18 23:57, , 5F
你應該誤會些什麼. std::queue 不提供這樣介面. 換個容器
09/18 23:57, 5F

09/18 23:57, , 6F
或自己包裝.
09/18 23:57, 6F

09/19 00:01, , 7F
這樣是不是說在程式碼中的28~32
09/19 00:01, 7F

09/19 00:02, , 8F
建議你去看看 deque<>, deque<> 是 queue<> 的預設容器
09/19 00:02, 8F

09/19 00:02, , 9F
都不是myquue[1]內的東西?
09/19 00:02, 9F

09/19 00:03, , 10F
抱歉, 我沒看到你有程式碼. 我誤會了. 我看一下.
09/19 00:03, 10F

09/19 00:05, , 11F
不過我看完還是不知道你的用途?. 你只是想改 fornt().size ?
09/19 00:05, 11F

09/19 00:05, , 12F
還是打算 "將來" 再改, 所以要把位址存起來?
09/19 00:05, 12F

09/19 00:06, , 13F
比如*(&myquue[1].front().size)的value是3125,但想改
09/19 00:06, 13F

09/19 00:07, , 14F
跟 myqueue[1].front().size = 要改的值 有什麼不同?
09/19 00:07, 14F

09/19 00:08, , 15F
成3000的話不能直接裡面的數字,address還是原本的
09/19 00:08, 15F

09/19 00:10, , 16F
此外, 你不能直接隨機存取 std::queue 裡面的東西. 只有頭尾
09/19 00:10, 16F

09/19 00:11, , 17F
queue 中每個元素不一定在位址上連續
09/19 00:11, 17F

09/19 00:15, , 18F
也就是 28~32 指向的位址不一定在 myqueue[1] 內
09/19 00:15, 18F

09/19 00:15, , 19F
謝謝 先看看deque的部分,有疑問可以再麻煩您嗎
09/19 00:15, 19F
文章代碼(AID): #1IESRqQo (C_and_CPP)
文章代碼(AID): #1IESRqQo (C_and_CPP)