stackqueuepriority_queuemapsetpair

======================================

stack:(栈)

包含:#include<stack>

定义:stack<value_type> S;

入栈:void push(const value_type& x)  如:S.push(i);

出栈:void pop()

取栈顶:value_type& top()  要注意的是,pop函数没有返回值,不能接收出栈的元素。要接收,要在pop之前使用top函数。

判栈空:bool empty()  返回 true 表示堆栈已空,false 表示堆栈非空。  如:if(!S.empty()){}

栈的大小:size_type size()   返回栈内元素的个数。

======================================

queue:(队列)

包含:#include<queue>

定义:queue<value_type> Q;

入队:void push(const value_type& x)       如:Q.push(i);

出队:void pop()

取队头:value_type& front()

取队尾:value_type& back()

判队空:bool empty()  返回 true 表示队已空,false 表示队非空。

队的大小:size_type size()   返回元素的个数。

======================================

priority_queue:(优先队列)

包含:#include<queue>

定义:priority_queue<value_type> Q;

入队:void push(const value_type& x)       如:Q.push(i);

出队:void pop()

取队头:value_top& top()

判队空:bool empty()  返回 true 表示队已空,false 表示队非空。

队的大小:size_type size()   返回元素的个数。

这个是大顶堆。

如果优先队列的元素类型是结构体,可以通过在结构体中重载“<“操作符的方法来修改优先队列的优先性。

如:bool operator<(const value_type &a) const;//重载小于号

======================================

map:(映射)

包含:#include<map>

定义:map<int,string> M;

插入元素:
M.insert(map<int,string>::value_type(2,”two”));//不覆盖
M[2]=”two”;//覆盖

判断元素存在:M.count(2)!=0//值为0表示不存在
M.find(2)!=M.end()//成立表示存在。效率高于上一条

查找元素:
M[2];//要先判断元素是否存在,返回存储的数据,若不存在会创建一个
M.find(2);//返回iterator类型,指向查找到的元素,若返回值等于M.end(),说明元素不存在。

删除元素:M.erase(2);//删除关键码为2的元素

iterator erase(iterator it); //通过一个条目对象删除

第一个元素:M.begin();

最后一个元素:M.end();

全部元素的遍历:
map<string,string>::iterator it;
for(it=M.begin();it!=M.end();it++)
    cout<<it->second<<endl;

it->first代表关键码,it->second代表存储的数据
======================================

set:(集合)

包含:#include<set>

定义:set<int> s;

插入元素:s.insert(1);

判断元素存在:s.count(1)!=0 //存在  也可以用s.find(1)!=s.end();效率较高

删除元素:s.erase(1);

清空所有元素:s.clear();

查找元素:s.find(1); //返回迭代器iterator

======================================

pair:

包含:#include<utility>   且 algorithm 和 map 也包含了这个头文件

定义:pair<int,int> p;

首元素:p.first

次元素:p.second

默认小于符:p1<p2 等价于 p1.first < p2.first  ||  ( !(p1.first < p2.first) && p1.second < p2.second)

      因此,组成pair的两种类型必须已经重载了小于号。

(还有其他。。。)

【ACM非算法部分】STL汇总的更多相关文章

  1. 【ACM非算法部分】综合篇

    从零开始系列,也为了更好的补缺补漏. ===================== 目录: scanf()函数 STL汇总 读入优化 =====================

  2. 【ACM非算法部分】scanf()函数

    scanf函数 格式说明符: %c    字符型 %d    十进制数 %i     读入十进制,八进制,十六进制数.输入的时候正常是十进制数,若输入0前缀的数将读入八进制,0x前缀读入16进制.若输 ...

  3. 【ACM非算法部分】读入优化

    今天做了ACdream的比赛才知道原来还有读入优化这一说.Orz 读入一个整数的时候这么写: int a; scanf("%d",&a); 和 int a; char c; ...

  4. ACM常用算法及练习(1)

    ACM常用算法及练习 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短 ...

  5. ACM常用算法及练习(2)

    ACM常用算法及练习 知识类型 重要度 容易度 应掌握度 典型题 其他           数据结构(5) 链表 ★★☆ ★★★ ★★☆     栈 stack ★★★ ★★★ ★★★ HLoj120 ...

  6. ACM主要算法

    ACM主要算法ACM主要算法介绍 初期篇 一.基本算法(1)枚举(poj1753, poj2965)(2)贪心(poj1328, poj2109, poj2586)(3)递归和分治法(4)递推(5)构 ...

  7. 基于OpenSLL的RSA加密应用(非算法)

    基于OpenSLL的RSA加密应用(非算法) iOS开发中的小伙伴应该是经常用der和p12进行加密解密,而且在通常加密不止一种加密算法,还可以加点儿盐吧~本文章主要阐述的是在iOS中基于openSL ...

  8. acm常见算法及例题

    转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题  初期:一.基本算法:     (1)枚举. (poj17 ...

  9. 基于OpenSSL的RSA加密应用(非算法)

    基于OpenSSL的RSA加密应用(非算法) iOS开发中的小伙伴应该是经常用der和p12进行加密解密,而且在通常加密不止一种加密算法,还可以加点儿盐吧~本文章主要阐述的是在iOS中基于openSL ...

随机推荐

  1. 对Servlet请求或响应进行JMockit测试

    对Servlet请求及响应进行mock方法, 通过getMockInstance方法对servlet进行打桩,对servlet提供的方法进行mock,替代真正的servlet请求或响应. 参考链接: ...

  2. linux(6/17)--文件打包上传和下载

    tar命令 命令功能 用来压缩和解压文件 命令格式 tar[必要参数][选择参数][文件] tar打包工具 -f ##指定生成包的名字,建议 -f单独写成一个参数 --delete filename ...

  3. 系统OOM复位定位

    定位OOM的工具: 1.多次收集Thread Dump信息kill -3  PID通过对比分析heap 对象信息和Thread信息来定位 2.通过 -Xloggc:D:/gc.log  -XX:+He ...

  4. 2062326 齐力锋 实验三《敏捷开发与XP实践》实验报告

    北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构 班级: 1623 姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月1 ...

  5. Oracle数据库PLSQL的中文乱码显示全是问号

    plsql连接数据库乱码问题 缘由: 小师妹周末叫我帮她重装数据库,这么大好的周末时光不出去玩儿,给她装数据库这不是很蛋疼么. 我问她为什么要重装,她说:数据存入数据库后,中文字符有乱码,一定是我上次 ...

  6. ARM协处理器CP15寄存器详解【转】

    本文转载i自;https://blog.csdn.net/gameit/article/details/13169405 用于系统存储管理的协处理器CP15   MCR{cond}     copro ...

  7. MyCat分片集群

    数据库集群会产生的问题: 自增ID问题 数据关联查询问题(水平拆分) 数据同步问题 数据库集群 自动增长id产生重复的话,解决: UUID形式  (没有排序 不是自增) 设置数据库步长 其他方案: r ...

  8. Cnblog页面美化小记

    Cnblog页面美化小记 这两天我在网上翻找了许许多多的资料,打开了不计其数的博客,对着\(js\).\(html\).\(css\)等文件删删改改,在浏览器和\(vscode\)间辗转腾挪...总算 ...

  9. PAT1037. Magic Coupon (25)

    #include <iostream> #include <algorithm> #include <vector> using namespace std; in ...

  10. WildcardMatching和Regex,通配符匹配和正则表达式匹配

    WildcardMatching:通配符匹配 算法分析: 1. 二个指针i, j分别指向字符串.匹配公式. 2. 如果匹配,直接2个指针一起前进. 3. 如果匹配公式是*,在字符串中依次匹配即可. 注 ...