/* map关联容器:
介绍:
map是一个关联容器,它可以提供一对一(其中第一个可以称为关键字,每个关键字只能在map中只出现一次,第二个可能称为该关键字的值)
的数据处理能力,意思就是可以实现类似k[cds111] = 2的功能,除此之外,map还会对数据自动排序
调用头文件:
#include<map>
using namespace std;
详细用法(部分):
例如:
map<string, int> p; ------ 定义一个字符串与整型关联容器,其中每个字符串都对应着一个整数,即每个字符串都为独特的key
对应上面的容器有:
p["student"] = 2; ------ 插入(覆盖)key,且字符串(key)"student"值为2(默认为0)
p[key] ------- 表示key对应的值
p.count("student") ------ 查找p里是否有key:"student",有的话返回1,否则返回0
p.erase("student") ------ 删除key:"student",成功返回1,否则返回0
p.empty() ------ 判断容器是否为空,是的话返回1,不是返回0
p.clear() ------ 清空容器
p.size() ------ 返回容器中key个数
*/
/* http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=690&pid=1004 */
#include<stdio.h>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
map<string, int> p;
int main(void)
{
int T, len;
char str[40];
string str2;
scanf("%d", &T);
while(T--)
{
scanf("%s", str);
len = strlen(str);
sort(str, str+len); /*对字符串进行排序*/
str2.assign(str); /*将C类的字符串转为C++的String以便作为key进入map*/
p[str2]++; /*字符串(key)str对应的值+1*/
printf("%d\n", p[str2]-1);
}
return 0;
}
map关联容器
最新推荐文章于 2023-03-01 10:21:56 发布