本题如果采用数组的方式存储 会超时 原因是数组存储没办法做到只遍历已有数据
所以 要使用map
map相关知识点
定义map:
map<Key,T> yourmap;
- Key为关键词 别名first T为值 别名second
- Key和T的定义类型为任意 例如map <int,int> mp; map <string,char> mp; 甚至可以使用结构体来当做键和值的类型
- 每个key在map中只能出现一次
- unordermap与map的用法相同 map为有序 unordermap是无序的
功能1 插入
insert()
例:map<int,string>student;
- student.insert(pair<int,string>('1','mingzi');
- student.insert(map<int,string>::value_type('1','mingzi'));
- student[6]='mingzi';//类似数组直接赋值
功能2 查找
find()
返回迭代器指向查找的元素 找不到返回map::end() 位置(NULL)
功能3 遍历
for(auto[x,y]:mp) //遍历每个xy
map<int,int>::iterator it;
for(it=mp.begin();it!=mpend;it++){ //迭代器遍历
cout<<it->first<<"-"<<it->second<<endl;
}
其他功能 增删改查
- empty(): 返回容器是否为空.
- size(): 返回容器内元素个数.
- erase():删除某个元素
- clear:删除所有元素
- 简单记录 以后见到类似的题还会补充
- 如有错误 感谢指正
- 更详细可以看oiwiki

京公网安备 11010502036488号