sort自定義類型排序

一個很簡單的問題,不過也磨了我好一會,在些總結記錄。

1. 對於不用寫自定義數據結構的情況:

static int cmp(const pair<string, int>& x, const pair<string, int>& y)

{

if (x.second != y.second)

return x.second > y.second;

else

return x.first > y.first;

}


vector<string, int> vec_word_tf;

for(map<string,int>::iterator it = m_map_word_tf.begin(); it != m_map_word_tf.end(); ++it)

{

m_vec_word_tf.push_back(make_pair(it->first,it->second));

}

 sort(m_vec_word_tf.begin(), m_vec_word_tf.end(), cmp);


這個比較函數要寫在類裏面,必須時static類型的,就是這個static磨了我很多久,否則就會報N多的庫函數錯誤。


至於需要自定義數據結構的情況,就在結構裏寫operator()(const T& x, const T& y){} 即可了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章