關於c 中map的排序問題

時間 2023-03-19 21:20:05

1樓:

嗯。頂樓上兩位的發言。我也說一下愚見:

如果你只是想要簡單的排序,那麼多了。 鍊表本身的 sort 。 通用庫的通用演算法:sort();

還有優先佇列等。都是有排序功能的。 如果你非得要用 map 鍵值對,那麼我就不明白了,為什麼是要拿 value 排序?

如果真的是要先用 map 存資料,然後想 按照 value 排序,我個人覺得不行,還不如再次遍歷 map ,將 value 直接放入 優先佇列中。。。出來就是有序的了。。。呵呵。。

投機的辦法,效率低了點,不過很好實現。。。

祝樓主好運。。。呵呵。。

2樓:匿名使用者

把值定義為乙個結構體,包括你原本的值元素,還有鍵的值, 這樣當你要按照值排序的時候,把map的值也就是結構體放進vector中,剩下的按照你原來的值進行排序就行了。

3樓:翔子菊子

stl各個容器的使用都是有其應用場景的,map的特點就是key值唯一,且預設排序。如果你認為value是你希望的排序原則,那麼是否要考慮value作為key?

另外,是否擬的程式定要用map?可以把你想解決的問題說出來,幫你參謀參謀:)

4樓:筍乾太鹹

這樣是不行的,因為key是確定的,而value是可以改動的。

如果按value自動排序的話map會變得極不穩定。

你想,如果每次改變value整個map都要重新排序的話不是效能損耗會很大嗎?

所以當初壓根就沒設計按照value排序的功能。

c 中關於map的知識,關於C 中 map 的意義以及用法

搞笑點 1.map的建構函式 mapmapstudent 2.資料的插入 在構造map容器後 第一種 用insert函式插入pair資料 pragma warning disable 4786 include include include using namespace std int main ...

c語言字母排序問題,C語言字母排序問題

很有意思題 今天太晚了,明天給你做吧 btw,樓主是哪個學校的,現在國外大學這樣學c的好像不多了. 雨過天晴日丶 include include string包含gets,puts,strlen函式 void main puts n 輸出排序後的字元陣列n 在vc 6.0執行了下,可以。 星雨新痕 ...

C語言氣泡排序問題,c語言氣泡排序問題!?

文文的鵬鵬 lz的排序方法是錯誤的。比如,輸入8 6 12 0,按照lz的演算法,最終的排序結果是6 8 12 0。lz的演算法只能保證每相鄰的兩個數小在前大在後,但整體結果並不是這樣,所以排序還是要雙重迴圈的。 排序方法挺多的,各有各的優缺點的,有些人只是習慣了用某一個而已。 哈哈,可以用選擇排序...