map按什么排序(map中按值排序泛型排序_yaonb的空间_百度空间)
template <typename T>
inline int cmp(pair<T,int>& v1,pair<T,int>& v2)
{
return v1.second > v2.second;
}
template <typename T>
inline void SortMapByValue(map<T,int>& mapImgKeyWordsVSM,
vector<pair<T,int>>& imgVSMVec)
{
for (map<T,int>::iterator curr = mapImgKeyWordsVSM.begin(); curr != mapImgKeyWordsVSM.end(); curr++)
{
imgVSMVec.push_back(std::make_pair(curr->first, curr->second));
}
std::sort(imgVSMVec.begin(), imgVSMVec.end(), cmp<T>);
}
//分词
#include <boost\regex.hpp>
#include <boost\algorithm\string.hpp>
void GetVSMVectorMap(const string&strVSMTxt ,map<string,int>&keyFreMap)
{
keyFreMap.clear();
boost::regex expression(",");
boost::sregex_token_iterator it(strVSMTxt.begin(),strVSMTxt.end(),expression,-1);
boost::sregex_token_iterator itEnd;
while (it!=itEnd)
{
string strKeyFreTxt = *it;
boost::trim(strKeyFreTxt);
if (!strKeyFreTxt.empty())
{
int nKeyWordEPos = strKeyFreTxt.find_first_of(:);
assert(nKeyWordEPos>0);
string strKeyWord = strKeyFreTxt.substr(0,nKeyWordEPos);
string strFre = strKeyFreTxt.substr(nKeyWordEPos+1);
int iFre = atol(strFre.c_str());
keyFreMap.insert(make_pair(strKeyWord,iFre));
}
it++;
}
return;
}
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!