一、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

题目描述:

福尔摩斯从X星收到一份资料,全部是小写字母组成。
他的助手提供了另一份资料:许多长度为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去重,排序,计数的更多相关文章

  1. List<Map>去重排序

    数据格式 [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":" ...

  2. STL MAP取消排序

    class MyLess{public: bool operator()(const CString str1,const CString str2)const { return TRUE; }}; ...

  3. 去重+排序板子(set+map)

    题意: 给定n个数,去重排序后输出个数和每个数 1.map实现 #pragma GCC optimize("O2") #include<iostream> #inclu ...

  4. STL map 按key值和按value值排序

    map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定 ...

  5. STL MAP及字典树在关键字统计中的性能分析

    转载请注明出处:http://blog.csdn.net/mxway/article/details/21321541 在搜索引擎在通常会对关键字出现的次数进行统计,这篇文章分析下使用C++ STL中 ...

  6. STL之vetor 排序

    1 STL提供的Sort 算法 C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数, ...

  7. 对vector等STL标准容器的排序操作

    [+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...

  8. 对vector等STL标准容器进行排序操作(转!)

    西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...

  9. STL Map和multimap 容器

    STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供 基于key的快速检索能力.       ...

  10. C++ STL map使用

    Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map构造函数:map<string , in ...

随机推荐

  1. Linux开发——spi总线学习

    1 spi总线协议简介 1.1 基本概念 SPI(Serial pe)

  2. Activiti7开发(四)-我的待办

    目录 1. 查询登录用户的待办任务 2.审批 1. 查询登录用户的待办任务 private List<Task> queryMyTasks(){ String username = Sec ...

  3. LoadRunner——分析图详解(十四)

    <分析图详解> 一.Running V user s 图 X轴表示运行所用的时间,Y轴表示vuser数, 显示在整个运行过程中随着时间的推移,虚拟用户数量是如何变化的,具体描述为:用户是如 ...

  4. OVS内核流表查询过程

    概括 现在的OVS使用microflow+megaflow缓存查询流表,ovs整体流程是从ovs_vport_receive(datapath/vport.c)开始,然后进入ovs_dp_proces ...

  5. Insecure Randomness 不安全的随机数

    Insecure Randomness Abstract 标准的伪随机数生成器不能抵挡各种加密攻击. Explanation 在对安全性要求较高的环境中,使用一个能产生可预测数值的函数作为随机数据源, ...

  6. Web 开发的常规流程

    Web 开发的常规流程 What is the Web? 简单地说,网络是一个遍布全球的网络,它连接大量设备并允许它们相互通信 Internet 上的网站托管在称为服务器的设备上,当您与 Intern ...

  7. hadoop 第二期

    Hive 启动hive 使用命令`hive` 输入命令之后要有一个 ; 结尾!!!!!!! DDL命令 1.创建数据表 create table lxl( num int, name string, ...

  8. Ubuntu+uWSGI部署基于Django的API【鸿篇巨制,事无巨细】

    背景 任务: 视频翻译项目需要在两个服务器上进行通信(国内&海外的阿里服务器). 因为python是主语言,选用了Django 来快速部署API. 注:Django中文文档:https://d ...

  9. 任意Exe转ShellCode?

    之前写过一个远控,但一直在琢磨如何生成shellcode,今天偶然看见一个项目:sRDI,github上就有 这个项目主要就是将dll转成shellcode,于是我就想到了"写一个输出文件的 ...

  10. LabVIEW之同步——集合点vi

    这是一个对我来讲比较偏的工具,做过很多项目,没有用它也能完成各种各样的项目. 今天我们一起来了解下这个工具,所以称之为工具,因为它属于NI LabVIEW的白色节点,一般是有官方利用LabVIEW代码 ...