STL Map自定义结构体find问题

[复制链接]
查看11 | 回复0 | 2021-1-27 06:07:45 | 显示全部楼层 |阅读模式
structSortS
{
intnNum;
stringstrName;
boolbFlag;//false->按照num比较true->按照Name比较
SortS():nNum(0),strName(""),bFlag(false)
{}
booloperatormapSortTest;
SortSstSort1;
stSort1.nNum=1;
stSort1.strName="111";
SortSstSort2;
stSort2.nNum=2;
stSort2.strName="222";
SortSstSort3;
stSort3.nNum=3;
stSort3.strName="333";
SortSstSort4;
stSort4.nNum=4;
stSort4.strName="444";
mapSortTest.insert(pair(stSort1,"liu111"));
mapSortTest.insert(pair(stSort2,"liu222"));
mapSortTest.insert(pair(stSort3,"liu333"));
mapSortTest.insert(pair(stSort4,"liu444"));
map::iteratorit=mapSortTest.begin();
for(;it!=mapSortTest.end();++it)
{
printf("it.first:%d%ssecond:%s\n",it->first.nNum,it->first.strName.c_str(),
it->second.c_str());
}
printf("\n\n");
SortSstSort5;
stSort5.bFlag=true;
stSort5.strName="222";
it=mapSortTest.find(stSort5);
if(it==mapSortTest.end())
{
printf("66666666666666666666666666666\n");
}
else
{
printf("77777777777777777777777777777\n");
}
it=mapSortTest.begin();
for(;it!=mapSortTest.end();++it)
{
printf("it.first:%d%ssecond:%s\n",it->first.nNum,it->first.strName.c_str(),
it->second.c_str());
}
system("pause");
return0;
}

在上面代码加???的地方,如果我的排序规则使用>的话,map的find就会找不到,但是如果排序规则使用 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行