常用stl(c++)
众所周知,c++的模板库是相当强大的。
下面我来列举一些常用的,(神奇的)
//部分材料选自《算法竞赛入门经典(第2版)》(刘汝佳)
一,algorithm (算法)
min(a,b)-----------取最小值
max(a,b)-----------取最大值
//当然在实际应用当中可能无法直接使用,这时候我们需要自己编写函数
例:
#include<iostream>
#include<cstdio>
using namespace std;
struct node
{
int x,y;
} e[];
int max(int z1,int z2)
{
if(e[z1].x==e[z2].x)
{
if(e[z1].y>=e[z2].y)return z1;
else return z2;
}
else
if(e[z1].x>e[z2].x)return z1;
else return z2;
/*-----------------
以x为第一关键字,y为第二关键字,比叫结构体e[z1],e[z2].
-------------------*/
}
int main()
{
cin>>e[].x>>e[].y;
cin>>e[].x>>e[].y;
cout<<max(,);
return ;
}
sort(int first,int last,int cmp)----------将[first,last)这样一个左闭右开的区间进行排序(默认从小到大)
运用自定义的cmp函数,可以将它的排序自定义
例:
int cmp(node x,node y)
{
return x.a==y.a?x.b<y.b:x.a<y.a;
}
全例:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int cmp(int a,int b)
{
return a<b;
/*--------------
若a<b,表示从小到大排序
若a>b,表示从大到小排序*/
}
int a[];
int n;
int main()
{
cin>>n;
for(int i=;i<n;i++)
cin>>a[i];
sort(a,a+n,cmp);
/*----------
表示排序a[0-(n-1)]这些数
正好与我们的存储方式相同*/
for(int i=;i<n;i++)
cout<<a[i];
return ;
}
lower_bound(first,last,element)--------查找第一个大于等于element的数所在的位置
upper_bound(first,last,element)-------查找第一个大于element的数所在的位置
int p2=lower_bound(a,a+,)-a;
/*因为指针是有增减性的,
而它这里返回的是位置,
减去a这个数组所在的位置
,就是这个数在数组里的位置 */
cout<<a[p2];
前提:必须是有序区间
 //借图于流沙-岁月的博客
//借图于流沙-岁月的博客
这是查找顺序
补充一点内容:迭代器(iterator)
度娘翻译:迭代器(iterator)有时又称游标(cursor),是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器物件的内容。它可以把抽象容器和通用算法有机的统一起来。
看不懂对不对?我也不懂。
简单来说,就是指向STL里容器的一个指针,返回其位置
定义:vector<int> ::inerator p;(红色为必写内容)
基本用法和指针一样,记录位置。
'*'取该位置的值,'&'取这个位置
vector<int> ::inerator p;
p="位置";
p=*"位置";
大概就是这样。
这样我们STL的两大内容就都说完了,关于容器,我们下次在说
byebye!(o゜▽゜)o☆[BINGO!]
常用stl(c++)的更多相关文章
- C++常用STL
		目录 C++ 常用STL整理 容器和配接器 list(链表) stack(栈) queue(队列) priority_queue(优先队列) set(集合) vector(向量) map&&a ... 
- 常用STL使用指北
		常用STL使用指北 set和multiset set和multiset都是基于红黑树(显然是一个二叉搜索树)的STL. 定义 我们可以使用(multi)set<元素类型>名称来定义一个(m ... 
- C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
		每次忘记都去查,真难啊 /* C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 */ /* vector常用用法 */ //头文件 #i ... 
- ACM竞赛常用STL(一)
		全排列函数next_permutation STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespac ... 
- 【pat】C++之刷题常用STL容器整理
		1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图). 头文件 #include<vec ... 
- ACM竞赛常用STL(二)之STL--algorithm
		<algorithm>无疑是STL 中最大的一个头文件,它是由一大堆模板函数组成的.下面列举出<algorithm>中的模板函数: adjacent_find / binary ... 
- ACM常用STL容器
		// STL(标准模板库),由三大部分组成:容器,算法,迭代器 // STL六大组件:container(容器),algorthm(算法),iterator(迭代器) // function obje ... 
- 常用STL的常见用法
		//#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma GCC optimize(2) //#inc ... 
- ACM常用STL
		转载于https://blog.csdn.net/riba2534/article/details/61929000 1. stack stack<int>st;//栈st,用于存放in ... 
随机推荐
- Meteor工作目录的划分
			现在说明一下Meteor的工作目录是这样划分的,但是在说明之前 做个约定,以免后面造成混淆或错误. 我们通过 meteor create API-002-Core创建meteor工程后,那么就会有一 ... 
- 我的第一个Python小程序
			猜年龄,如果大了提示小点,如果小了,提示大点 涉及的知识点: 1.变量 2.注释 3.接收交互式的输入 4.类型转换 5.while循环 6.if..elif..else多条件分支语句 # Autho ... 
- 剑指offer 面试43题
			面试43题: 题目:1~n整数中1出现的次数 题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数.例如,输入12,1~12这些整数中包含1的数字有1,10,11,12一共出现了5次. 解 ... 
- 'is' in Python
			在Python中应该避免将“is”运算符用于比较 像“数值”和“字符串”这种不可变的值.由于Python内部操作这些对象的方式,使得对这些对象使用“is”运算符的结果将是不可预测的. 下面以两个例子加 ... 
- EXCEL 从网页复制的内容 单/多选框 在EXCEL删不掉 及 2007添加开发工具选项卡
			从网页复制到Excel中的单选.多选框等,有时候删除时怎么都删不掉,很是恶心.这时候需要使用“开发工具”来删除.它是设计模式下的一种组件或者说控件. Excel 2007 的可以用下图方式按delet ... 
- Java访问网络url,获取网页的html代码
			在Java中,Java.net包里面的类是进行网络编程的,其中,java.net.URL类和java.net.URLConection类是编程者方便地利用URL在Internet上进行网络通信.有两种 ... 
- sublime text3自动同步左边栏颜色背景为编辑栏颜色
			下面的步骤需要安装Package Control插件,如果你已经安装,可跳过本步骤,直接看第二步. 第一步:安装Package Control插件: 按Ctrl+`调出console(注:安装有QQ输 ... 
- linux 网卡buffer大小
			参考截取一部分:https://blog.csdn.net/ysu108/article/details/7764461 在linux下可以修改协议栈改变tcp缓冲相关参数: 修改系统套接字缓冲区 e ... 
- SOA 面向服务架构 阅读笔记(二)
			SOA并不能保证企业的员工更加轻松,企业的收益更加客观. 6.软件组件 6.1 组件和组件的作用 通过可重用的软件代码-组件,可以构建灵活的软件. 6.2 软件组件又称为应用程序,程序,函数,模 ... 
- Object.defineProperty小解
			最早认识这个函数,源于对vue双向绑定的探索,vue通过这个函数实现属性挟持并结合发布者-订阅者模式实现双向绑定 先看一个实例: var o= {name: 'a'} Object.definePro ... 
