![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STL专题
记录一些容器用法
baby的我
社畜先生
展开
-
队列queue
一、基本操作:Q.back( ) 返回队尾元素Q .empty( ) 队列是否为空,是的话返回true,否则返回falseQ.push( x ) 在队尾加入元素xQ.top( )返回队头元素Q.front( ) 返回队头元素Q.size( ) 返回队列中元素的个数Q.pop( ) 删除队头元素二、队列类型主要有这几种queue<int>...原创 2019-03-14 20:08:18 · 350 阅读 · 0 评论 -
bitset用法
一、简介bitsetbitset是STL中一种bool类型的动态数组,可以近似的看作为vector<boo> 类型,头文件为<bitset>主要用来二进制与十进制的相互转换二、基本用法bitset的创建 bitset<4> B;//无参构造,长度为4,默认每一位为0//0000bitset<8> B(12);//长度...原创 2019-04-21 15:27:25 · 477 阅读 · 0 评论 -
set的基本用法
一、简介头文件:#include<set> 元素会自动排序 set: 元素不重复的结合, multiset:元素可以重复的集合二、set类型的构造set<int> S; //声明一个int类型的集合set<char> S; //声明一个char类型的集合multiset<int> S;//声明一个可以存在相同元素...原创 2019-04-03 15:50:34 · 1934 阅读 · 0 评论 -
栈stack的用法
栈是一种先进后出的容器,可以看成一个桶,最后放进去的元素只能先出来相对于其他容器,栈的用法简单得多,因为只有5个操作;push( ) 入栈 pop( ) 出栈 empty( ) 是否为空 top( ) 返回栈顶元素 size( ) 返回栈中元素个数#include<stack> //头文件stack<int> S;//声明一个存放整型变量的栈 -...原创 2019-04-11 21:05:36 · 377 阅读 · 0 评论 -
map的基本用法
一、简介map我们与最常用的数组作比较1、数组我们都得有确定的长度,而map你可以随意删除和插入数据,它的长度是根据用户的操作动态变化的 2、我们通过数组的下标来访问数组元素,而下标i必须是整形,而map的下标的数据类型是用户自己定义的,例如先定义一个以char类型为下标,里面存的int型的map:map<char, int> M,再插入数据:M['a']=5; 此时访问M[...原创 2019-03-27 16:41:13 · 1384 阅读 · 0 评论 -
algorithm库函数集合
不修改内容的序列操作:修改内容的序列操作:划分操作:排序操作:二分法查找操作:集合操作:堆操作:最大/最小操作:附上 巡防算法for_each(容器起始地址,容器结束地址,要执行的方法)[html]view plaincopy#include<iostream>#include<al...原创 2019-03-30 21:20:42 · 5683 阅读 · 0 评论 -
vector动态数组
一、简介头文件:<vector>随机访问时间为常数。在尾部添加速度很快,在中间插入慢。实际上就是动态数组,vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。使用vector之前,必须包含相应的头文件。...原创 2019-03-29 18:47:45 · 3105 阅读 · 0 评论 -
STL库简介
一、前言STL是c++中的一个标准模板库,作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。二、什么是STL"什么是STL?",假如你对STL还知之甚少,那么我...转载 2019-03-29 18:11:23 · 26801 阅读 · 0 评论 -
全排列函数permutation
这个函数有两个一个是next_permutation()另一个是prev_permutation(),第一个是求原排列的下一个排列,第二个是求原排列的上一个排列,当上一个排列或下一个排列不存在时,返回false。假如我们有长度为3的排列,则全排列为:1 2 31 3 22 1 32 3 13 1 23 2 1共六个一、next_permutation()这个函数是求此...原创 2019-03-29 15:14:04 · 4649 阅读 · 0 评论 -
pair类型的使用
一、pair简介pair是一个含有两个数据的数据组,可以看作结构体:struct pair{ Etype first: Etype second;};其中Etype是用户自己设置的数据类型,(用pair声明的数组好像只能开到100000)二、pair的声明与初始化pair<T1, T2> p1; //创建一个空的pair...原创 2019-03-15 20:58:11 · 5678 阅读 · 0 评论 -
堆函数
一般解题过程中,我们都是手写堆和与堆相关的操作,其实STL里面已经定义了相关函数STL中封装了有关堆操作的函数头文件:<algorithm>STL里面的堆操作一般用到的只有4个:make_heap();、pop_heap();、push_heap();、sort_heap();一、make_heap();他的函数原型是:void make_heap(first_poin...原创 2019-03-15 14:41:46 · 444 阅读 · 0 评论 -
list链表的使用
一、简介STL中封装了链表的容器list,内部实现是一个双向链表不同于vector,list中每个元素在内存中的地址是不连续且没有规律的,所以用list进行插入和删除时间复杂度比vector低很多,例如在vector插入一个元素之后,这个元素后面的地址全部会改变,而list不会,地址不会连续由于地址不是连续的,所以当用迭代器访问元素时,不能使用迭代器++、+1之类的操作二...原创 2019-04-13 20:28:05 · 2812 阅读 · 0 评论