請幫我按值計數排序multimap。按count計數排序multimap
例如,
multimap<char,int> mymultimap;
mymultimap.insert (pair<char,int>('a',100));
mymultimap.insert (pair<char,int>('a',101));
mymultimap.insert (pair<char,int>('a',111));
mymultimap.insert (pair<char,int>('b',200));
mymultimap.insert (pair<char,int>('b',211));
mymultimap.insert (pair<char,int>('c',300));
應該按以下順序排序後:
c
b
a
我嘗試使用自定義比較是這樣的:
struct comparer
{
bool operator() (const char& first, const char& second) const
{
return mymultimap.count(first) < mymultimap.count(second);
}
};
但我can` t定義
multimap<char, int, comparer> mymultimap;
在定義struct comparer
之前。
爲什麼不交換密鑰和值?如果你想要基於值索引一個集合,並且你的密鑰在任何情況下都不是唯一的,那麼這似乎是合乎邏輯的。 –
爲什麼要在定義比較之前定義你的多圖? – leftaroundabout
@ Component10鍵和值無關緊要,我想根據每個元素中元素的數量對multimap進行排序。 – Kos