stl-----map去重,排序,计数
一、map





erase()删除函数:可以迭代器删除,关键字删除,成片删除。
例:1、iter=mapStu.find(1);
mapStu.erase(iter);
2、int n = mapStu.erase(1);//删除了会返回1,否则返回0;
3、mapStu.erase(mapStu.begin(),mapStu.end());


equal_range函数返回一个pair,pair里面的第一个变量是lower_bound返回的迭代器,pair的第二个迭代器返回的是upper_bound返回的迭代器,如果这两个迭代器相等的话,则说明map中不出现这个关键字。
二、去重,排序,计数







例:蓝桥杯真题 http://newoj.acmclub.cn/contests/1258/problem/9
1659: 2018蓝桥杯培训-STL应用专题-day 3 map作业题4
题目描述:
他的助手提供了另一份资料:许多长度为8的密码列表。
福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。
输入:
输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024
紧接着一行是一个整数n,表示以下有n行密码,1<=n<=1000
紧接着是n行字符串,都是小写字母组成,长度都为8
输出:
一个整数, 表示每行密码的所有排列在s中匹配次数的总和。
aaaabbbbaabbcccc
2
aaaabbbb
abcabccc
4
讲真,第一反应就是KMP,然后就不知道该怎么做了,感觉例题很典型
#include <iostream>
#include <algorithm>
#include <map>
#include <cstdio>
using namespace std; int main()
{
// freopen("Atext.in","r",stdin);
string a,tmp="";
int n,ans=0;;
cin >> a;
map<string,int> pp;
for(int i=0;i<a.size()-7;i++)
{
tmp="";
for(int j=i;j<i+8;j++)
{
tmp+=a[j];
}
sort(tmp.begin(),tmp.end());
//cout << tmp <<endl;
pp[tmp]++;
}
cin >> n;
while(n--){
cin >> tmp;
sort(tmp.begin(),tmp.end());
ans+=pp[tmp];
}
cout << ans << endl;
return 0;
}
stl-----map去重,排序,计数的更多相关文章
- List<Map>去重排序
数据格式 [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":" ...
- STL MAP取消排序
class MyLess{public: bool operator()(const CString str1,const CString str2)const { return TRUE; }}; ...
- 去重+排序板子(set+map)
题意: 给定n个数,去重排序后输出个数和每个数 1.map实现 #pragma GCC optimize("O2") #include<iostream> #inclu ...
- STL map 按key值和按value值排序
map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定 ...
- STL MAP及字典树在关键字统计中的性能分析
转载请注明出处:http://blog.csdn.net/mxway/article/details/21321541 在搜索引擎在通常会对关键字出现的次数进行统计,这篇文章分析下使用C++ STL中 ...
- STL之vetor 排序
1 STL提供的Sort 算法 C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数, ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
- 对vector等STL标准容器进行排序操作(转!)
西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...
- STL Map和multimap 容器
STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供 基于key的快速检索能力. ...
- C++ STL map使用
Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map构造函数:map<string , in ...
随机推荐
- BlenderGIS记录
blender GIS 的插件名:"3Dview:blenderGIS" 具体使用方法看文档. 选择地图时选择bing地图会快一点.如果能挂梯子可以选择google地图 shift ...
- ArrayList学习
核心源码 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; imp ...
- 搭建简单nfs共享
1.查看是否安装nfs,rpcbind包 rpm -q nfs-utils rpm -q rpcbind 2.安装包 服务端和客户端 yum -y install nfs-utils 3.修改配置 ...
- Python第八章实验报告
一.实验对象:<零基础学Python>第八章的3道实例和4道实战 二.实验环境:IDLE Shell 3.9.7 三.实验要求:学习使用标准模块和第三方模块 四.实验过程: 实例01 创建 ...
- 修改linux服务器时间
date -s "20220104 11:07:05" &&hwclock --systohc
- FastJson参数
名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true UseSingleQuotes 使用单引号而不是双引号,默认为false WriteMapNull ...
- pat乙级自我回顾:一般错误出现原因
在obsidian里面写的有些引用没用,需要的可以评论区或者私信我呦~ 对于错误,末尾的换行不影响格式, 段错误: 一般是设置的数组小于题目给定的要求,循环条件i--写成i++,数组下标写错,也有可能 ...
- Linux文件上传下载--rz/sz命令
原文地址:https://www.cnblogs.com/igoodful/p/14694038.html 1.rz 命令 1.1 命令简介 rz 命令(Receive ZMODEM),使用 ZMOD ...
- 从零开始学Java系列之Java是什么?它到底是个啥?
全文大约[5000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货!文章带有丰富案例及配图,只为让你更好的理解和运用文中的技术概念,给你带来具有足够的思想启迪...... ----------- ...
- Kafka为什么比其他消息中间件快
更多内容,前往 IT-BLOG 无论 Kafka 作为 MQ 也好,还是作为存储层也罢,无非就是两个功能,一是 Producer 生产的数据存到 Broker,二是 Consumer 从 Broker ...