map容器中怎么输出值最大的那个键呢
map<string,int>clors;stringclor;while(n!=0&&cin>>clor){++clors[clor];--n;}比如就这个clors容...
map<string,int> clors;
string clor;
while (n!=0&&cin>>clor)
{
++clors[clor];
--n;
}
比如就这个clors容器中, 记录了各个颜色的出现次数,想输出出现次数最多的那个颜色,该怎么写呢。。 谢谢
无视while里的n!=0和--n吧。。 展开
string clor;
while (n!=0&&cin>>clor)
{
++clors[clor];
--n;
}
比如就这个clors容器中, 记录了各个颜色的出现次数,想输出出现次数最多的那个颜色,该怎么写呢。。 谢谢
无视while里的n!=0和--n吧。。 展开
展开全部
遍历容器,找到数值最大的int值,然后再次遍历,判断相等就返回所需的string.
下面是代码:
int nMax = 0;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
int n = iter->second;
if( n > nMax )
nMax = n;
}
string stValue;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
if(iter->second == nMax)
{
strValue = iter->first;
break;
}
}
容器map的遍历方法:
1、常规方法
2、利用keyset进行遍历,其优点在于可以根据所想要的key值得到想要的 values,更具灵活性。
3、比较复杂的一种遍历在这里,其灵活性极强,想得到什么就能得到什么。
展开全部
遍历容器,找到数值最大的int值,然后再次遍历,判断相等就返回所需的string.
下面是代码:
int nMax = 0;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
int n = iter->second;
if( n > nMax )
nMax = n;
}
string stValue;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
if(iter->second == nMax)
{
strValue = iter->first;
break;
}
}
下面是代码:
int nMax = 0;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
int n = iter->second;
if( n > nMax )
nMax = n;
}
string stValue;
for(map<string,int>::iterator iter = clor.begin() ; iter != clor.end() ; ++iter)
{
if(iter->second == nMax)
{
strValue = iter->first;
break;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询