用map


用map用map

1 #include <iostream>
 2 #include <map>
 3 using namespace std;
 4 int main()
 5 {
 6     map<int,int> m;
 7     int n,v;
 8     cin>>n;    //这比如输入3
 9     cout<<m[v]<<endl;
10     for(int i=0;i<n;i++){    //这里就循环三次
11         cin>>v;                //这里就需要输入三个数
12         m[v]++;         //如果依次输入的是2 3 3则m[2]=1,m[3]=1,m[3]=2
13         cout<<m[v]<<endl; 
14     }
15     int ans,count=0;
16     for(map<int,int>::iterator it=m.begin();it!=m.end();it++)
17         if(it->second>count){
18             count=it->second;   //这里的it->second是指map<int,int>中的后面的value值
19             ans=it->first;          //it—>first是指map<int,int>中的后面的key值
20         }
21         cout<<ans<<endl;
22      return 0;
23 }

全部源代码
map m;

int n,v;

cin>>n; //这比如输入3

cout<<m[v]<\
for(int i=0;i\\
cin>>v; //这里就需要输入三个数

m[v]++; //如果依次输入的是2 3 3则m[2]=1,m[3]=1,m[3]=2

cout<<m[v]<<endl;

}

  1. 这里要说一下map是一c++中关联容器的一种,在这里可以看成一个键值对,键值对就是key:value的形式(列如“pig”:“女神”)。m[v]的初始值默认为0。这里m[v]是map中额value。然后m[v]中的v如果是同一个就会按代码上的++。所以如果依次输入的是2 3 3则m[2]=1,m[3]=1,m[3]=2。按照这个第二次输如的3,因为之前没有过。所以为m[v]=1,然后第三个数进来,还是3,因为此时的key为3的已经有了。所以此时的m[v]为2

int ans,count=0;

for(map::iterator it=m.begin();it!=m.end();it++)

if(it->second>count){

count=it->second; //这里的it->second是指map中的后面的value值

ans=it->first; //it—>first是指map中的后面的key值

}

  • 这里是用的一个迭代器。详情看c++相关知识
  • begin()+end()是迭代器的相关函数,代表开始和结束
  • it->first指map里面的key(即前面的值)
  • it->second值map里面的value(后边的值)
  • 然后ans为统计之后的最高值
    原文链接: https://www.cnblogs.com/chenjiaolong/p/12234684.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/192417

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:01
下一篇 2023年2月12日 下午6:02

相关推荐