map

度娘知道一切:点击打开链接

map主要思想是一对一映射,可以int,double,long long,string 等相互映射

1.有迭代器的用法,可操作一一对应的两个数

begin

语法:
  iterator begin();

begin()函数返回一个迭代器指向map的第一个元素。

while(cin>>N&&N)
	{
		map<string,int>m1;
		map<string,int>::iterator it;
		//定义迭代器(不用管这到底是个什么),主要是begin()等函数的返回值是iterator,见上图
		while(N--)
		{
			cin>>str1;
			m1[str1]++;
		}
		n=0;
		for(it=m1.begin();it!=m1.end();++it)
		{
			if(it->second>n)
			{
				n=it->second;
				str1=it->first;
			}
		}
		cout<<str1<<endl;

2.暴力搜索,即:把每一项拆分,再用map查找

num=0;
	while(cin>>str[num])
		m1[str[num++]]=1;
	
	for(i=0;i<num;i++)
	{
		len=str[i].length();
		for(j=1;j<len;j++)
		{
			string str1(str[i],0,j);
			string str2(str[i],j,len);
			if(m1[str1]>0&&m1[str2]>0)
			{cout<<str[i]<<endl;break;}
		}
	}

3.找出连续排列,如:hdu 1800

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值