C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
每次忘记都去查,真难啊
/*
C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
*/ /*
vector常用用法
*/
//头文件
#include<vector> //常用的初始化方法
vector<int> v; //直接定义一个整型元素的向量 且未声明长度,其中int的位置可以换成别的数据类型或者结构体等
vector<int> v(); //定义了10个整型元素的向量,其中每一个数都没有初值
vector<int> v(, ); //定义了10个整型元素的向量,并且为每个元素赋初值5 //常用的操作
v.back(); //返回最后一个元素
v.front(); //返回第一个元素
v.clear(); //清空v中的元素
v.empty(); //判断v是否为空,空则返回true,否则false
v.push_back(); //在最后的一个元素后插入5
v.size(); //返回v中的元素的个数 sort(v.begin(), v.end(), cmp); //sort排序,其中cmp部分与结构体等数据类型自定义排序时cmp相同用法 for(int i = ; i < v.size(); i++){ //遍历
printf("%d\n", v[i]);
} /*
map常用用法
*/
//头文件
#include<map> //常用操作
map<int, int> m; //初始化
m[] = ; //以数组形式插入值
m[] = ;
m[]++; //可以参与运算
m[] += ;
cout<<m[]<<endl;
cout<<m[]<<endl; /*
set常用用法 set中的元素自动从小到大排序,且合并重复元素
*/
//头文件
#include<set> //常用操作
set<int>s; //定义
s.insert(x); //插入数值
s.clear(); //删除set容器中的所有的元素
s.empty(); //判断set容器是否为空 set<int>::iterator it; //遍历
for(it = s.begin(); it != s.end(); it++)
{
printf("%d\n", *it);
} //s.end()没有值
cout<<"s.begin() "<<*s.begin()<<endl;
//lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
cout<<"lower_buond 3 "<<*s.lower_bound()<<endl;
//upper_bound()--返回大于某个值元素的迭代器
cout<<"upper_bound 3 "<<*s.upper_bound()<<endl;
//find()--返回一个指向被查找到元素的迭代器
cout<<"find(3) "<<*s.find()<<endl;
cout<<"s.size() "<<s.size()<<endl; /*
queue常用用法
*/
//头文件
#include<queue> //常用操作对于普通队列来说
queue<int> q; //定义一个队列
q.front(); //获取队首元素
q.pop(); //删除队首元素
q.empty(); //判断队列是否为空
q.push(); //向队列中加入元素 //priority_queue
priority_queue<int> q; //定义一个优先队列
q.top(); //获取队列中最大元素(首个)
q.pop(); //删除最大元素(队首)
q.push(x); //向队列中加入元素
q.empty(); //判断优先队列是否为空 //对于结构体而言,需要重载小于号(优先队列按照从大到小排序)
priority_queue<Node> q; struct Node{
int a, b;
bool operator < (const Node & x) const
{
return a > x.a;
}
}; /*
stack常用用法
*/
//头文件
#include<stack> //常用操作
stack<int> s; //定义一个栈
s.pop(); //删除栈顶元素
s.top(); //获取栈顶元素
s.empty(); //判断栈是否为空
s.push(); //向栈中压入5
C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法的更多相关文章
- ACM竞赛常用STL(一)
全排列函数next_permutation STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespac ...
- C++标准模板库(STL)之Vector
在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...
- C++常用STL
目录 C++ 常用STL整理 容器和配接器 list(链表) stack(栈) queue(队列) priority_queue(优先队列) set(集合) vector(向量) map&&a ...
- STL模板整理 vector
一.什么是标准模板库(STL)? 1.C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板, ...
- 转:用STL中的vector动态开辟二维数组
用STL中的vector动态开辟二维数组 源代码:#include <iostream>#include <vector>using namespace std;int mai ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
- [知识点]C++中STL容器之vector
零.STL目录 1.容器之map 2.容器之vector 3.容器之set 一.前言 关于STL和STL容器的概念参见STL系列第一篇——map(见上).今天介绍第二个成员——vector. 二.用途 ...
- (转)C++ STL中的vector的内存分配与释放
C++ STL中的vector的内存分配与释放http://www.cnblogs.com/biyeymyhjob/archive/2012/09/12/2674004.html 1.vector的内 ...
- C++STL中的vector的简单实用
[原创] 使用C++STL中的vector, #include <stdio.h> #include<stdlib.h> #include<vector> usin ...
随机推荐
- 第01组 Alpha冲刺(6/6)
队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/11914337.html 作业博客: https://edu.cnblogs.com/campus/fz ...
- leetcode 13. Integer to Roman
使用eval,特别处理6个case var romanToInt = function (s) { const map = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C ...
- Notepad++使用NppFTP插件编辑linux上的文件
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11351446.html 作者:jstarseven 码字挺辛苦的..... 一.N ...
- 【2019年06月28日】A股最便宜的股票
查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 经典价值三因子选股: 市盈率PE.市净率PB 和 股息分红率,按照 1:1:1的权重,选择前10大最便宜的股票. ...
- Keras 使用过程问题汇总
以下是Keras 使用过程出现的一些问题: (1)Keras 后端选择问题 一开始是选用的Theano,结果迭代一轮所花时间很长: 后面改用:TensorFlow作为后端,结果果然变快了: 改完Ten ...
- [原创] C#编程规范工具介绍
1.目标 代码编写规范.整齐.整洁.可读. 无错误 无警告 2.排版 安装PowerCommands扩展 “工具”-“扩展管理库”,搜索安装. 设置选中Format document on save和 ...
- python mysqldb批量执行语句executemany
MySQLdb提供了两个执行语句的方法,一个是execute(),另一个是executemany() execute(sql) 可接受一条语句从而执行 executemany(templet,args ...
- standard_init_linux.go:178: exec user process caused "no such file or directory"
golang docker build 制作完进项后运行报错 出现该问题的原因是编译的环境和运行的环境不同,可能有动态库的依赖 1.默认go使用静态链接,在docker的golang环境中默认是使用动 ...
- Elasticsearch 史上最全最常用工具清单
基础类工具 1.Head插件 1)功能概述: ES集群状态查看.索引数据查看.ES DSL实现(增.删.改.查操作) 比较实用的地方:json串的格式化 2)地址:http://mobz.github ...
- ELK学习笔记之Kibana查询和使用说明
0x00 概述 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 Kibana接口概述 Kibana接口分为四个主要部分: 发现 可视化 仪表板 设置 我们将按照列出的顺 ...