- 博客(35)
- 收藏
- 关注
原创 (三十三)队列(queue)
形象点儿说,队列相当于学校的排队的食堂,先来排队的先得到饭,然后先走;后来排队的最后得到饭,最后走。STL 专门提供了关于栈和队列的容器,还拓展了一个双向队列(deque)三个库均可使用导入这是 STL 独有的专属容器,它也有队头和队尾,但插入和删除可以同时进行。形象一点就是医院的“军人优先”。还是一个队列,普通人往后排,军人们有可以排在前面的特权。因此,队头可以插入删除,队尾也可以。
2024-11-15 21:59:01
1044
原创 (三十)二分查找(Binary Search)
大多数人在小时候应该都玩过数字扫雷。比如在1-100中任意选择一个数字作为雷,比如82,第一个人从50开始查找,裁判会说“数字小了”,第二个人就得说一个50-100的数字,比如75,裁判宣布“太小了”。第三个人从75-100选择一个数,90,“太大了”,第四个人在75-90之中选择一个数字88,“太大了”。第五个人75-88选择80,“太小了”,直到第X人猜测的数字等于那个数字,裁判就宣布“第X个人踩雷了”。这就是一个简单的二分查找。
2024-09-07 11:41:03
1192
原创 (二十八)STL set容器(集合)
总之来说不管是C/C++还是python,foreach都是一个良心玩意,直接把复杂的for循环简化了。第一行表示它的类型(一般用class类型表示这个主类的类型,也可以把。对了,set容器默认从小到大,怎么变为从大到小呢?在C++中基于容器迭代器的遍历给出了一种新的。一样的,他的迭代器类型是这个。)还是静态数组它们都有这个语法。,说明这个就是从小到大的排序器。),但一般排序用的函数统一类型。),还是老老实实的用迭代器(第二行表示它的排序器,默认为。这是set容器定义时的模版。我们可以发现比较器类型是。
2024-09-01 12:01:10
1920
原创 (二十七)递推
递推是递归的进阶,递归用函数来递,而递推用循环来递。递归的缺点是时间复杂度高,而递推专门来克制这个问题。递推有两种推法:顺推和逆推。顺推就是从前往后推,逆推就是从后往前推。递归和递推最有意思的那就是找递推式。看下面的递推题。
2024-08-31 12:48:25
983
原创 (二十六)STL vector容器(动态数组)
对于操作1,接下来两个数X,Y,表示在第X个数之后插入一个数Y,保证0≤X≤当前数的个数,若X=0,表示在数组开头插入。第一行两个整数N,M(N,M≤1000),N表示数组中一开始有N个数,M表示M次操作。开学了,有40个学生来报名,想要存储每个同学的姓名,可以使用静态数组存储。对于操作2,接下来一个数X,表示要删除第X个数,保证1≤X≤当前数的个数。给定一个N个数的数组,M次操作,每次操作为下列操作之一。开学了,未知有多少个同学,要存储每个同学的姓名,可以使用动态数组存储。输出若干个数,表示最后的数组。
2024-08-26 12:53:25
1036
原创 (二十五)递归
同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图中的C点和P1,……,P8,卒不能通过对方马的控制点。“马”下过象棋的都知道走日字格,可以看作走在(x+1,y+2), (x+2,y+1), (x-2,y-1), (x-1,y-2), (x+1, y-2), (x+2, y-1), (x-1, y+2), (x-2, y+1)的位置,这里还规定“卒”不能吃“马”,因此还要加上(x, y)的位置。害羞的强哥藏起了答案,聪明的你能算出他的战斗值吗。
2024-08-04 12:22:11
724
原创 (二十四)进阶算法
段错误(segmentation fault)可以理解为函数内的变量占用字节太大了,也可能是访问了野指针(指向。,从2开始看(因为1不是质数也不是合数),2是质数,筛选掉所有是2的倍数的数,它们是合数,随后看下一个没有被筛掉的数:3,再来筛掉,然后看数字5,把数字五的倍数筛掉…经过12天的“魔鬼集训”,我又回来更新了。我们可以仿造埃氏筛,做一个用于存储数值的数组。函数外,一是无法访问,二才是段错误。筛到不能筛时,就不可能被。质数表和质数筛都得放在。但是这样会重复算一些数字。时,可以先不考虑筛掉。
2024-07-28 20:28:52
1105
原创 (二十三)高精度运算
这次,高精度帖子,它来了!还记得C++的类型吗?int类型最多可以存储10位数(到十亿),就连long long类型最多也只能存储20位数(到一千京),因此short类型的存储最大值可怜得只有5位(到一万),而强大的高精度比long long类型大好几十倍。因为这种数很大,因此有一种叫法——大数。高精度数没有办法直接加减乘除,应该怎么办呢?指针与迭代器位运算与进制联合体(union)类(class)二十三:高精度运算二十四:算法进阶二十五:递归vector容器二十七:递推set容器。
2024-07-12 13:18:18
3005
原创 (二十二)类(class)
你见过类吗?就以猫为例,普通的猫喜欢舔毛、半夜睡不着,猫有它的岁数,颜色,依靠这些属性(长什么样)与方法(怎么做),便做出了猫类。猫也有很多特殊特征,病猫、凶猛的猫、只有两条腿的猫,甚至是会唱歌的猫……这就是一个类的构造前言提到,类中有属性和方法两类,具体定义方法如下class T {.........}Users;一样的,structunion和class都不要把后面的分号丢了,因为这填的是使用者列表publicprivate和protectedpublic。
2024-07-11 13:20:13
850
原创 (二十一)联合体(union)
你见过一个联合吗?假如我们以弓箭手值班为例,他们轮流值班,而不是一齐值班,这就是一个联合体。在说道联合体union的时候,就不得不回忆一下结构体struct了,它的定义是这样的int num;char sex;在定义联合体时也一样,只不过关键字struct要改为union,就像这样int num;char sex;这次本来打算连着类class和union写了,但union的篇幅有点大,所以我打算分段写指针与迭代器位运算与进制二十一:联合体(union二十二:类(class。
2024-07-08 16:41:22
868
原创 (二十)位运算与进制
你听说过进制吗?你知道进制怎么表示吗?你知道进制如何转换吗?这篇帖子就能get进制。另外,在二进制中,我们还会用到位运算符号只有0和1两个数字,加法遵循“逢二进一”的原则,减法遵循“借一为二”原则。二进制数101001010100101010010写作10100102101001020b10100100b10100100b1010010或1010010B1010010B1010010B。这是计算机中经常使用的,因此使用位运算会大大降低运算复杂度。
2024-07-07 12:39:07
1309
原创 (十六)functional 与 lambda [](){}
这个库是用于存储函数的库,定义方法类似于后期定义STL容器的方法//定义一个函数变量,并执行Funct的操作,List中填的是原函数参数列表Typ中还可以填auto这个关键字,表示现在不确定类型,但必须在定义后赋值!如果你在DEV中执行失败,就点这里的蓝色字体int t = a;a = b;b = t;//让swap代替f执行函数swap(a, b);return 0;
2024-07-02 21:35:45
774
原创 (十一)二维静态数组
假如说一个变量是一个点,那么一个一维数组就是一条线,二维数组就是一个面这里还是下标原则//定义一个xs*ys大小的二维数组,不赋值//定义一个二维数组,填了多少值就有多少大小//定义一个xs*ys大小的二维数组并全部赋值为0。
2024-06-23 13:18:13
265
转载 (八)一维静态数组
Typ arr[n];//定义一个类型为Typ的数组arr,设置大小为n,并设置每个值为随机数(其实不是随机的)//定义一个类型为Typ的数组arr,设置大小为n,并设置每个值为0//定义一个类型为Typ的数组arr,根据被赋值的值的个数来分辨大小注意:在c++的数组,下标从0开始,假如定义了一个共5项数组arr分别为。那么1的下标为0,2的下标为1,……,5的下标为4。因此c++中的第n项实际指现实的n-1项。
2024-06-22 10:07:11
70
转载 (七)类型与定义
宏定义是一种在c语言的定义,可以替代代码设置常量,定义时需放在头文件之后#define A B //表示用A替代B#undef A //表示取消宏定义A宏定义有什么广泛的用处呢?看以下示例#define N3if(a%N==0)if(b%N==0)if(c%N==0)if(d%N==0)return 0;这个程序当输入四个数,随后输出能被3整除的数并用空格分开,这么一看还没有发现什么,但是假如我想直接在代码中改为能够被12345整除呢?这时就可以直接改变值了。
2024-06-22 10:03:23
80
转载 (六)选择语句和运算符
小明的考试成绩出来了,他知道自己的成绩小于90没有好果子吃,所以他在考试后养成了一个习惯:如果分数考得好(>90),则说“yes”,否则什么也不说。输入一个数字n,表示小明的分数。而家人看到后,也会做出选择。考到了优:“不错,进步了”。考到了良:“继续努力,争取下次优”。版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。指输出一个字符串,没有任何格式,并将最后的字符串截止符。在c++中,可以实现选择语句判断,另外,在只有。输入小明的分数,最后输出等级。结束,学费一个赞,拜拜。
2024-06-22 10:00:37
49
转载 (五)c++ iomanip
版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。在c++中,有一个库,运用它时要使用头文件。stdin & stdout的加速代码。配合的函数,当然,不想用这个库,就用。中,如果不确定精度或场宽,可以替换为。当然,你记不住可以使用万能头文件。在这个库中包含了许多和。
2024-06-22 09:56:17
290
转载 (四)加减乘除模
看到标题,谁不会加减乘除呢?但是,我们今天要让C++计算数的和差积商,怎么办?早在两年半前,我就讲了怎么算和。版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。再将除运算与模运算(mod)
2024-06-22 09:51:52
54
转载 (三)scanf? printf!
这时,你也烧了,“命名空间呢?”放进DEV-C++中却没有问题,而cout和cin却需要,为什么呢?其实,stdio.h 是C语言的库,C++照样能够使用。而在C语言中,标准的stdin(scanf)和stdout(printf)是没有作用域的。先赞后看,养成习惯!首先,还是讲 printf ,它和 scanf 位于以下头文件(两个都有)可以说,它相当于用后面的Fill去填前面的各个Format。因此,在C++的头文件里的成员,如果没有使用标准命名空间(好了,scanf来了,这次先讲Format再举例。
2024-06-22 09:47:28
43
转载 (二)cin? cout!
这里的Vari就是要输入的变量(变量遇到’Space’(空格)、‘Tab’(四个空格) 和 ‘Enter’(换行) 就结束)使用 cout
2024-06-22 09:34:13
47
转载 (一)你好,c++
一天,你发现了C++,步入了这门语言,C++之路正式开始,你将会从搞不懂一切的萌新成为C++的大佬,甚至超过10岁的作者。这是C++每次敲代码时的必经之路,除了命名空间,别想绕着走。等等,怎么没运行,疑惑的你将代码放了两个半小时,也无动于衷。进入DEV-C++,你觉得十分陌生,周围空旷一片,接下来按。至于怎么编译,就要下载一个文件了,名字: DEV-C++想必大家都知道"CV工程师",是的,剪切,同时,选中后可以直接拖动代码块到特定位置。,新建一个文件,然后开始“处刑”有误请指出,Thank you!
2024-06-22 09:06:44
78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人