一個很簡單的問題,不過也磨了我好一會,在些總結記錄。
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){} 即可了。