alphabet
'a eklenmiş bir numaraya sahip bir map
sahibim. map
, ilk değer kullanılarak varsayılan olarak sıralanmıştır, ancak bunu frequency
i.e ikinci değer olarak sıralamak ve sonra yazdırmak istiyorum. Lütfen bana yardım edin Düzenleme: Burada deneyebilecek hiçbir şey yokBir haritayı C++
0
'a ekleyin
A
cevap
2
map
ürününü doğrudan ikinci değerine göre ayıramazsınız. Ancak, manuel olarak yapılabilir. İlk olarak, map
verilerini vector
pair
'a kaydedin ve ardından vektörü ihtiyacınıza göre sıralayın. istediğiniz çıkışı vardır
template <typename T1, typename T2> struct less_second {
typedef pair<T1, T2> type;
bool operator()(type const& a, type const& b) const {
return a.second < b.second;
}
};
map<key_t, value_t> mymap; /* It is map you want to sort according to the second argument*/
/* ...
...
... */
vector<pair<key_t, value_t> > mapcopy(mymap.begin(), mymap.end());
sort(mapcopy.begin(), mapcopy.end(), less_second<key_t, value_t>());
Şimdi mapcopy
(bir vektör):
Ama neyse burada operasyon açıkladı üzerinde performans için biraz kod parçacığı olduğunu.
Bize şu ana kadar denediğiniz şeyi gösterme – Mangesh
Haritayı bir> 'haline getirin, sıralayın ve yazdırın. –
@MohitJain Biraz detaylandırır mısınız? –