我要做的是改变这种
有一张地图<字符串,整数>它按频率排序
typedef map<string,int> word_Count_List;
word_Count_List word_Count;
struct val_Lessthan : binary_function < pair<string,int>, pair<string,int>, bool > {
bool operator() (const pair<string,int>& x, const pair<string,int>& y) const
{return x.second>y.second;}
} val_lt;
以后
vector<pair<string,int> > wordVector;
copy(word_Count.begin(), word_Count.end(), back_inserter(wordVector));
sort(wordVector.begin(), wordVector.end(), val_lt);
我想打印一个包含它们出现的单词列表(现在就是这样)但是将比较更改为int * string.length,而不仅仅是int
这就是我现在正在打印的方式
ofstream file_Out;
file_Out.open(file);
for(unsigned int i=0; i<wordVector.size(); ++i) {
file_Out << wordVector[i].first << " " << wordVector[i].second << "\n";
}
file_Out.close();
}
我对结构和重载不太好,我可以更改上面的那个还是我需要做一些新的事情?
执行
之类的操作是否合法 {return (x.first.length*x.second)>(y.first.length*y.second);}