
C++/python
文章平均质量分 86
qq_37357873
这个作者很懒,什么都没留下…
展开
-
qsort函数(不能用c++STL时使用)
qsort包含在 stdlib.h头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。qsort函数声明如下: void qsort(void * base,size_t nmemb,size_t size ,int(compar)(const void ,const void *)); ...原创 2018-08-19 19:32:20 · 309 阅读 · 0 评论 -
输入输出框架
输入输出 1.while(scanf(“%d%d”,&n,&q)==2&&n) 可以多次输入两个数字,然后执行循环中的操作,只有当输入0的时候跳出while循环 2.while(getline(cin,line))跳不出循环stlvector<int> pile[maxn] //每个pile[i]是一个vector...原创 2020-10-02 18:09:19 · 540 阅读 · 0 评论 -
C/C++基础-书和笔记
文章目录零、常识0.1 时空复杂度边界0.2 动态申请内存0.3 ascll 码一、进位制与整数表示1.1进制输出1.2进制转换与位移1.3 int溢出二、C++字符串front和back取子串易搞错基础操作三、数组3.1 声明3.2 memset初始化3.3 字符数组读入基本操作零、常识0.1 时空复杂度边界时间:一般时间复杂度超过109,一定就超时了空间:int 类型 106就超过内存了0.2 动态申请内存尽量不用指针和动态申请内存。链表用c语言实现,申请内存空间用,#inc原创 2020-10-11 08:44:10 · 2884 阅读 · 0 评论 -
STL-queue-vector-map-set
五、STL5.1优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。首先要包含头文件#include<queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队。优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上添加了内部的一个排序,它本质是原创 2020-10-11 08:47:40 · 171 阅读 · 0 评论 -
跳出循环-M个苹果N个盘子
virtual judge1.函数跳出循环可用returnorigin:uva101 vector的使用如果是两(多)层for循环在里层(或中间某一层)中断跳出所有层的循环,这样的操作可以提出来,放到函数中,用return 实现中断跳出...原创 2020-10-11 14:30:02 · 143 阅读 · 0 评论 -
溢出的可能性总结
溢出什么是整形溢出可能溢出的情况1.整数平方可能是由溢出造成的问题1.死循环什么是整形溢出int类型4byte,32位,符号位占一位,所以int类型的范围是−232-2^{32}−232(-2147483648)~2322^{32}232-1(2147483647)详细溢出介绍看这篇可能溢出的情况1.整数平方for(int i=2;i*i<n;i++)如果n是一个很接近int最大值的数,那么i*i有可能会在int类型范围内溢出,如果溢出成负数,那么程序就会死循环可能是由溢出造成的问题原创 2020-10-11 14:30:20 · 190 阅读 · 0 评论 -
#include<cctype>字符分类与转换函数
#include<cctype>经试验,只需包含#include<iostream>即可注意 这两个函数是处理字符的,而不能直接对字符串进行处理toupper(字符):将小写字母转化为大写字母tolower():将大写字母转化为小写字母...原创 2020-10-11 15:01:53 · 259 阅读 · 0 评论 -
程序已停止工作的可能性
如果出现递归公式出错,无法达到递归的终止条件Eg:递归公式 return f(n)+1而不是return f(n-1)+1循环终止条件无法到达Eg:没有在循环体内令循环控制变量-1原创 2020-10-11 20:37:24 · 82 阅读 · 0 评论 -
保研机试准备
一 零碎知识cin,cout速度会慢一点,如果输入#include<iostream> //C++标准输入输出,cin/cout#include<cstdlib>#include<cstdio> //c标准输入输出,scanf/printf#include<algorithm> //常用算法,比如快速排序sort函数#include<map><vector><string><set> //S原创 2020-10-11 21:16:03 · 358 阅读 · 0 评论 -
Broken Keyborad-链表实现
用结构体定义链表的一个节点typedef struct node{ node *next;//指向下一个节点 datatype data;//节点数据}创建头结点node *head; //head是指向头结点的指针head=(node*)malloc(sizeof(node));//这里参考 int *a;a=(int*)malloc(sizeof(int));//动态申请内存的固定用法,(类型*)是让得到的地址(指针)指向的是指定数据类型的空间if(head==NULL)原创 2020-10-12 16:39:59 · 124 阅读 · 0 评论 -
upper_bound与lower_bound函数
头文件:#include <algorithm>二分查找的函数有 3 个:lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值第一个大于等于出现的位置。upper_bound(起始地址,结束地址,要查找的数值) 返回的是 第一个大于待查找数值 出现的位置。binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。注意:使用二分查找的前提是数组有序。1 函数lower_bound()功能:函数lower_b原创 2020-10-21 10:00:40 · 401 阅读 · 0 评论 -
C++哈希表
unordered_map的使用1、头文件:#include<unordered_map> 2、定义一个哈希表(我们以Key和Value都是int变量为例):unordered_map<int,int> Hash;3、哈希表的建立有下面几种方法:Hash[1]=3;Hash.insert<make_pair(1,3)>;Hash.insert({ {1,3},{2,4} });4、迭代器:unordered_map<int,int>:转载 2020-10-30 15:27:45 · 3639 阅读 · 0 评论 -
常见递归解决的问题--超出int的解可以求模
求有多少种解的问题,一般用递归能解记忆化递归只要能用递归解决的问题,都可以用记忆化递归用一个数组来存储已经计算出的结果,在递归函数的一开始处,先判断当前要求的值是否已经计算出来,如果计算出来,不用递归可以直接返回了动态规划能用递归的问题,一般都可以用动态规划解决青蛙跳台阶问题的递归边界n=0 return 1;这是为什么呢啊?从动态规划的角度看,dp[2]=dp[1]+dp[0]=2,所以dp[0]=1动态规划法:int dp[110];int numWays(int n){原创 2020-11-05 19:45:54 · 170 阅读 · 0 评论 -
二进制、位运算相关
移位运算运算符:左移<< ,右移>>移位运算可以作用于任意进制,只不过其实是将其转化成二进制进行操作的:int a=0xf,b=15;//a是16进制(转化成10进制就是15)int a1,b1;a1=a>>1;b1=b>>1;输出的结果a1和b1都是7右移一位相当于把这个数除2,左移一位相当于把这个数乘2&、||运算这两个运算,也是将数字转化成二进制实现的int a=9,b=8,c=0xf;int a1,b1;a1=a&原创 2020-11-07 12:47:39 · 195 阅读 · 0 评论 -
sort和sorted还有lambda
sort()/sorted()和参数sort()是在原位重新排列列表sorted()是产生一个新的列表sort(iterable,cmp/key/reverse…)iterable:是可迭代类型;cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;reverse:排序规则. reverse = True 或者 reverse = False,有默认值。返回值:是一个经过排序的可迭代类型,原创 2020-11-11 19:01:00 · 266 阅读 · 0 评论