map进行排序,支持排序的map
地图中按值排序-泛型排序_yaonb的空间_百度空间
地图中按值排序-泛型排序模板类型名称T
内嵌int CMP(T对,int v1,T对int v2)
{
返回v1。第二个v2。第二;
}
模板类型名T
inline void SortMapByValue(map T,int mapImgKeyWordsVSM,
向量对t,int imgVSMVec)
{
for (map T,int:iterator curr=mapimgkeywordsvsm。begin();curr!=mapimgkeywordsvsm。end();货币)
{
imgvsmvec。push _ back(STD:make _ pair(curr-first,curr-second));
}
std:sort(imgVSMVec.begin(),imgVSMVec.end(),cmp T
}
//分词
#包含boostregex.hpp
#包含boost 算法string.hpp
void GetVSMVectorMap(const string strVSMTxt,map string,int keyFreMap)
{
keyfremap。clear();
boost:regex表达式(,);
boost:sre gex _ token _ iterator it(strvsmtxt。begin()、strVSMTxt.end()、expression,-1);
boost:sre gex _ token _ iterator itEnd;
而(它!=itEnd)
{
string strKeyFreTxt=* it
boost:trim(strKeyFreTxt);
如果(!strKeyFreTxt.empty())
{
int nkeywordpos=strkeyfretxt。find _ first _ of(:);
断言(nKeyWordEPos
string strKeyWord=strkeyfretxt。substr(0,nkeywordpos);
string str fre=strkeyfrext。substr(nkeywordpos 1);
int iFre=atol(str fre。c _ str());
keyfremap。insert(make _ pair(strKeyWord,iFre));
}
它;
}
返回;
}
映射对string,string,int:iterator itSysVSM=mapimgsysvsm。查找(it-first);