用map找出现次数最多的字符串

发布于 2017-12-05  816 次阅读


用map找出现次数最多的字符串

代码

#include 
#include 
#include 
using namespace std;
int main()
{
	map mp; // 使int和string建立联系 
	char str[101];
	int t,ma=-1;
	cin >> t;
	getchar();
	while(t--)
	{
		scanf("%s",str);
		mp[str]++; // 将str存入mp中,出现相同的str改mp对应的值+1 
		if(ma < mp[str]) // 选出出现最多的str 
			ma = mp[str];
	}
	map::iterator it; // 定义一个迭代器 
	for(it=mp.begin();it!=mp.end();++it) // 用迭代器历遍mp 
	{
		if(it->second == ma) // 找的出现最多的str并打印 
			cout << it->first << ' ' <second << endl;
	} 
}

map的一些函数

begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数