众所周知,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++)的更多相关文章

  1. C++常用STL

    目录 C++ 常用STL整理 容器和配接器 list(链表) stack(栈) queue(队列) priority_queue(优先队列) set(集合) vector(向量) map&&a ...

  2. 常用STL使用指北

    常用STL使用指北 set和multiset set和multiset都是基于红黑树(显然是一个二叉搜索树)的STL. 定义 我们可以使用(multi)set<元素类型>名称来定义一个(m ...

  3. C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法

    每次忘记都去查,真难啊 /* C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法 */ /* vector常用用法 */ //头文件 #i ...

  4. ACM竞赛常用STL(一)

    全排列函数next_permutation STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespac ...

  5. 【pat】C++之刷题常用STL容器整理

    1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图). 头文件 #include<vec ...

  6. ACM竞赛常用STL(二)之STL--algorithm

    <algorithm>无疑是STL 中最大的一个头文件,它是由一大堆模板函数组成的.下面列举出<algorithm>中的模板函数: adjacent_find / binary ...

  7. ACM常用STL容器

    // STL(标准模板库),由三大部分组成:容器,算法,迭代器 // STL六大组件:container(容器),algorthm(算法),iterator(迭代器) // function obje ...

  8. 常用STL的常见用法

    //#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma GCC optimize(2) //#inc ...

  9. ACM常用STL

    转载于https://blog.csdn.net/riba2534/article/details/61929000 1.  stack stack<int>st;//栈st,用于存放in ...

随机推荐

  1. Meteor工作目录的划分

    现在说明一下Meteor的工作目录是这样划分的,但是在说明之前 做个约定,以免后面造成混淆或错误.  我们通过 meteor create API-002-Core创建meteor工程后,那么就会有一 ...

  2. 我的第一个Python小程序

    猜年龄,如果大了提示小点,如果小了,提示大点 涉及的知识点: 1.变量 2.注释 3.接收交互式的输入 4.类型转换 5.while循环 6.if..elif..else多条件分支语句 # Autho ...

  3. 剑指offer 面试43题

    面试43题: 题目:1~n整数中1出现的次数 题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数.例如,输入12,1~12这些整数中包含1的数字有1,10,11,12一共出现了5次. 解 ...

  4. 'is' in Python

    在Python中应该避免将“is”运算符用于比较 像“数值”和“字符串”这种不可变的值.由于Python内部操作这些对象的方式,使得对这些对象使用“is”运算符的结果将是不可预测的. 下面以两个例子加 ...

  5. EXCEL 从网页复制的内容 单/多选框 在EXCEL删不掉 及 2007添加开发工具选项卡

    从网页复制到Excel中的单选.多选框等,有时候删除时怎么都删不掉,很是恶心.这时候需要使用“开发工具”来删除.它是设计模式下的一种组件或者说控件. Excel 2007 的可以用下图方式按delet ...

  6. Java访问网络url,获取网页的html代码

    在Java中,Java.net包里面的类是进行网络编程的,其中,java.net.URL类和java.net.URLConection类是编程者方便地利用URL在Internet上进行网络通信.有两种 ...

  7. sublime text3自动同步左边栏颜色背景为编辑栏颜色

    下面的步骤需要安装Package Control插件,如果你已经安装,可跳过本步骤,直接看第二步. 第一步:安装Package Control插件: 按Ctrl+`调出console(注:安装有QQ输 ...

  8. linux 网卡buffer大小

    参考截取一部分:https://blog.csdn.net/ysu108/article/details/7764461 在linux下可以修改协议栈改变tcp缓冲相关参数: 修改系统套接字缓冲区 e ...

  9. SOA 面向服务架构 阅读笔记(二)

    SOA并不能保证企业的员工更加轻松,企业的收益更加客观. 6.软件组件 6.1  组件和组件的作用  通过可重用的软件代码-组件,可以构建灵活的软件. 6.2  软件组件又称为应用程序,程序,函数,模 ...

  10. Object.defineProperty小解

    最早认识这个函数,源于对vue双向绑定的探索,vue通过这个函数实现属性挟持并结合发布者-订阅者模式实现双向绑定 先看一个实例: var o= {name: 'a'} Object.definePro ...