STL
化身孤岛的鲸o
我祈祷拥有一颗透明的心灵
展开
-
STL deque 双向队列介绍
deque函数:deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque的特点:支持随机访问,即支持[]以及at(),但是性能没有vector好可以在内部进行插入和删除操作,但性能不及list。deque和...原创 2020-03-23 16:16:45 · 217 阅读 · 0 评论 -
STL set集合
set是根据元素值进行排序的集合,所插入的元素在集合中唯一,不存在重复元素。原创 2019-08-09 17:10:43 · 136 阅读 · 0 评论 -
STL 优先队列的使用方法
priority_queue是一种能根据元素优先级进行插入、引用、删除操作的序列。执行这些操作的接口(函数)与queue相同。元素类型为int时,默认的优先级为最大的元素优先级最高,将其优先取出。在优先队列中,元素可以具有相同的优先权。默认优先级#include<iostream>#include<queue>#include<stdio.h>usi...原创 2019-07-27 11:11:01 · 212 阅读 · 0 评论 -
STL map的使用方法
1、插入数据方法一:使用insert进行插入#include<iostream>#include<map>using namespace std;map<int,string> m;int main(){ m.insert(pair<int,string> (1,"小明")); m.insert(pair<in...原创 2019-07-23 21:14:22 · 231 阅读 · 0 评论 -
STL vector的使用方法
什么是Vector?可以在添加元素时增加长度的数组称为动态数组或可变长数组。相对地,必须事先指定长度,只能容纳一定数量元素的数组称为静态数组。vector成员函数示例:这里的迭代器可以看成一个指针。向长度为n的vector的特定位置执行插入或删除操作时,算法复杂度为O(n)。...原创 2019-07-16 22:33:35 · 189 阅读 · 0 评论 -
牛客网编程题 有趣的最大值化 双向队列deque的使用
题解:这题没有给数据范围。。。好烦只能自己试数据==思路:维护一个双向队列,队列记录的是元素的下标,保证队列头一定是当前最大值的下标,我们按顺序将元素放进队列,当放入一个元素时,从队列尾开始把小于当前值的元素出队列,因为当有更大的元素进入时,在其前面较小的元素已经没用了。当队列中元素个数大于等于k个时,我们就可以开始记录最后结果了。代码如下:#include<iostream&...原创 2020-03-23 15:24:27 · 184 阅读 · 0 评论 -
a+b 高精度板子
代码如下:string add(string s1,string s2){ string res; int jw=0; int len1=s1.length()-1,len2=s2.length()-1; while(len1>=0&&len2>=0){ int num=s1[len1]-'0'+s2[len2]-'0'...原创 2020-04-15 01:04:53 · 107 阅读 · 0 评论 -
ASCII码表
ASCII码表具体如下所示[1] :Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释0000 00000000x00NUL(null)空字符0000 00010110x01SOH(start of headline)标题开始0000 00100220x02STX (start of text)正文...原创 2020-02-15 17:10:11 · 299 阅读 · 0 评论 -
基数排序
首先,什么是基数排序呢?基本思想: 分配 + 收集也叫桶排序或箱排序,设置若干个箱子,将关键字为k的记录放入第k个箱子,然后再按序号将非空的连接。基数排序:数字是有范围的,均由0~9这十个数组组成,则只需设置十个箱子,相继按个、十、百…进行排序。直接看图吧:第三趟排序我省略了,按百位排完之后就是从小到大的顺序了。时间复杂度:O(k *(m + n))其中k是关键字个数,n为...原创 2020-02-14 20:20:31 · 302 阅读 · 0 评论 -
cmath中的log函数
(1)以e为底的对数比如:以e为底5的对数ln5 使用log(5)(2)以2为底的对数比如:以2为底10的对数log210 使用log2(10)(3)以10为底的对数比如:以10为底100的对数log10100 使用log10(100)(4)exp(n)值为e^n次方(5)以n为底m的对数我们就要使用换底公式:lognm = ln m / ln n也就是:log(m...原创 2020-02-11 17:01:25 · 5842 阅读 · 0 评论 -
C和C++中字母、字符数组、字符串关于大小写的转换
一、使用C语言(1)把小写字母转换成大写字母方法一:使用ASCII码转换。int main(){ char c='a'; char ch=c-32; printf("%c %c",c,ch); return 0;}输出结果:方法二:使用C语言提供的函数:toupper()和tolower()需要使用#include<ctype.h>...原创 2020-01-30 15:42:15 · 6528 阅读 · 0 评论 -
关于C++字符串以及各种强制转换的一些函数
将字符串转换为字符数组:char ch[10];string s;strcpy(ch,s.c_str());//字符串到字符数组将字符数组转换为字符串:char ch[10];string s;scanf("%s",ch);s=(string)ch;//强制转换为字符串将字符串形式的double型数据转换为double类型double num=atof(s.c_str()...原创 2019-10-13 20:43:38 · 1704 阅读 · 0 评论 -
结构体重载小于号
(1)在sort,map,set中,重载< 使其从小到大排序 (set 默认是小顶堆) 顺序和我们习惯的是相同的 struct node { int key; bool operator < (const node a) const { return key < a.key;//从小到大排序 } ...原创 2020-01-08 17:03:32 · 1358 阅读 · 2 评论 -
链表
1、单向链表(有头结点head、尾插)#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;struct node{//链表结点 node *next; int key;};node *head;//头结点node *p;//当前结点...原创 2019-07-27 19:17:04 · 117 阅读 · 0 评论