map中數(shù)據(jù)類型為結(jié)構(gòu)體 如何給map的key值排序?
如何給map的key值排序?在C中,map是一種常見且易于使用的數(shù)據(jù)結(jié)構(gòu)。映射是按鍵自動排序的,但有時我們需要按每個元素的值對映射進(jìn)行排序。因?yàn)镾TL的sort函數(shù)不支持按值對地圖排序,所以我們只能考
如何給map的key值排序?
在C中,map是一種常見且易于使用的數(shù)據(jù)結(jié)構(gòu)。映射是按鍵自動排序的,但有時我們需要按每個元素的值對映射進(jìn)行排序。因?yàn)镾TL的sort函數(shù)不支持按值對地圖排序,所以我們只能考慮另一種方法。
這是一種非常方便的使用Multimap的方法。Multimap與map類似,每個元素分為兩部分:鍵和值。類似地,Multimap將根據(jù)鍵自動排序。區(qū)別在于map中的key不允許重復(fù),而Multimap允許key重復(fù)。通過將映射中的鍵和值傳遞到Multimap,可以按值對映射進(jìn)行排序。
代碼如下所示:
Map<char,int> CNT,Multimap<int,char>ucnt for(Map<char,int>::iterator itr=cnt.開始()它!= 控制端()itr){ucnt.插入(pair<int,char>(itr->second,itr->first))}
c 的map里面的value的類型可以是結(jié)構(gòu)體嗎?
Objectobj=newObject()obj=地圖。獲取(“key”)map是map的對象,“key”是key的值,通常是一個字符串。我希望它能幫助你。
c std::map中以結(jié)構(gòu)體作為key值,value也是結(jié)構(gòu)體,在插入多條數(shù)據(jù)時,有些數(shù)據(jù)沒有insert到map中,請問是什么原因? 注:1、結(jié)構(gòu)體已重載小于操作符,結(jié)構(gòu)體包含int和char數(shù)組兩字段,數(shù)組長度夠長 2、在AIX下,該程序正常運(yùn)行,在SUSE Linu?
然后在插入數(shù)據(jù)的地方設(shè)置斷點(diǎn),單步調(diào)試就可以看到數(shù)據(jù)插入是否成功。