[問題] priority_queue 的 top() 與 front()

看板C_and_CPP (C/C++)作者 (...)時間13年前 (2012/12/22 17:05), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
想請教 C++ 的 priority_queue 當中 top() 和 front() 這兩個 member function 有什麼差異嗎? 看起來 top() 只是直接呼叫 front() ? 今天被人一問才突然發現, 雖然兩種函式我都用過,但是我完全沒發現原來是有兩種函式可以用... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.225.136.125 ※ 編輯: DJWS 來自: 36.225.136.125 (12/22 17:06)

12/22 17:20, , 1F
Any sequence container with random access iterator
12/22 17:20, 1F

12/22 17:21, , 2F
operations front(), push_back() and pop_back() can
12/22 17:21, 2F

12/22 17:21, , 3F
be used to instantiate priority_queue.
12/22 17:21, 3F

12/22 17:23, , 4F
這句話的意思是說 priority_queue 會用到模板的第二型
12/22 17:23, 4F

12/22 17:25, , 5F
別引數作為實作容器, 但是標準規定中並沒有指出須提供
12/22 17:25, 5F

12/22 17:25, , 6F
front() 這個介面, 所以可能是你的STL實作中用到繼承
12/22 17:25, 6F

12/22 17:27, , 7F
再將父類別介面expose出來, 雖然只是多了 top() 去呼
12/22 17:27, 7F

12/22 17:28, , 8F
front(), 但是直接使用 front() 是較不具可攜性的作法
12/22 17:28, 8F

12/23 00:50, , 9F
謝謝板主回覆! 意思是說使用top()會比較好囉~
12/23 00:50, 9F

12/23 01:35, , 10F
yes
12/23 01:35, 10F
文章代碼(AID): #1GrNVZmz (C_and_CPP)
文章代碼(AID): #1GrNVZmz (C_and_CPP)