- 博客(38)
- 收藏
- 关注
原创 【C++那些趣事】如何让输出的内容变色
这篇文章介绍了在C++中如何为控制台输出添加颜色效果。对于Windows系统,需要包含windows.h头文件,使用SetConsoleTextAttribute()函数并通过三基色常量或颜色编号来设置文本和背景颜色。Linux系统则使用特殊的ANSI转义序列实现颜色输出。文章还提供了具体的代码示例和颜色编号对照表,并指出这些方法在不同系统和环境中的兼容性差异。需要注意的是,这些颜色设置会影响后续所有输出,且效果可能因控制台主题而异。
2025-07-31 08:00:00
338
原创 【C++语法】浮点型与 scanf 和 printf
本文介绍了C/C++中的浮点数类型及输入输出函数scanf和printf的使用。主要内容包括:(1) 三种浮点类型float、double和long double的存储范围与精度;(2) printf的格式化输出语法,包括不同类型数据的格式标识符和填充规则;(3) scanf的格式化输入语法,强调变量前需加&;。文章配有代码示例,展示了如何使用这些函数进行浮点数的输入输出操作。这些函数既适用于C语言也适用于C++,且无需使用命名空间。
2025-07-30 11:11:15
504
原创 【算法】图的存储
本文介绍了三种图的存储方式: 邻接表:使用静态数组套动态数组结构,适合表示稀疏图,空间利用率高,但查询效率较低。可支持带权图,通过结构体存储邻接点和边权。 邻接矩阵:使用二维数组直接表示节点间连接关系,适合稠密图,查询效率高但空间复杂度为O(V²)。对角线元素为0,无边用∞表示。 边表(链式前向星):使用一维数组存储边信息,结合头指针数组,空间复杂度为O(E),适合需要频繁遍历边的场景。通过倒序连接实现高效遍历。 三种方法各有利弊,应根据具体应用场景选择合适的存储结构。
2025-07-25 21:45:17
686
1
原创 【C++语法】整型与 cin 和 cout
本文介绍了C++中基本的输入输出语法和使用方法。主要内容包括:(1) 整型变量的定义方式及存储范围;(2) cout的使用方法,包括字符串、字符、数字的输出以及变量代入;(3) cin的输入方法;(4) C++输入输出加速器的使用。文章通过具体代码示例详细讲解了这些基础语法,并强调了编写C++程序时的基本框架和注意事项,如主函数结构、命名空间使用等,适合初学者学习C++的基本输入输出操作。
2025-07-24 16:40:41
1061
原创 【DEV-C++配置】你好,C++
本文介绍了C++编程入门指南,重点讲解了Dev C++开发环境的配置与使用。主要内容包括:(1)推荐使用轻量级的Dev C++作为开发工具;(2)将英文界面切换为中文的步骤;(3)可选设置缺省源代码模板;(4)配置编译器支持C++14标准及O2优化;5)常用快捷键说明;6)演示第一个Hello world程序。文章旨在帮助初学者快速搭建C++开发环境,掌握基础操作,迈出编程学习的第一步。
2025-07-20 14:50:18
884
原创 【算法】图的定义与一些常用术语
本文介绍了图论的基本概念和术语。图由节点集合V和边集合E组成,比树结构更灵活,允许任意连接。主要术语包括:边权、有向图/无向图、路径/途径、环/重边/自环、度/入度/出度、联通分量、弱/强连通、稀疏/稠密图等。还介绍了四联通和八联通在迷宫问题中的应用及编程实现方式。这些基础概念为图论算法学习提供了必要准备。
2025-07-20 10:10:52
571
1
原创 (三十三)队列(queue)
形象点儿说,队列相当于学校的排队的食堂,先来排队的先得到饭,然后先走;后来排队的最后得到饭,最后走。STL 专门提供了关于栈和队列的容器,还拓展了一个双向队列(deque)三个库均可使用导入这是 STL 独有的专属容器,它也有队头和队尾,但插入和删除可以同时进行。形象一点就是医院的“军人优先”。还是一个队列,普通人往后排,军人们有可以排在前面的特权。因此,队头可以插入删除,队尾也可以。
2024-11-15 21:59:01
1121
原创 (三十)二分查找(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
1251
原创 (二十八)STL set容器(集合)
总之来说不管是C/C++还是python,foreach都是一个良心玩意,直接把复杂的for循环简化了。第一行表示它的类型(一般用class类型表示这个主类的类型,也可以把。对了,set容器默认从小到大,怎么变为从大到小呢?在C++中基于容器迭代器的遍历给出了一种新的。一样的,他的迭代器类型是这个。)还是静态数组它们都有这个语法。,说明这个就是从小到大的排序器。),但一般排序用的函数统一类型。),还是老老实实的用迭代器(第二行表示它的排序器,默认为。这是set容器定义时的模版。我们可以发现比较器类型是。
2024-09-01 12:01:10
1979
原创 (二十七)递推
递推是递归的进阶,递归用函数来递,而递推用循环来递。递归的缺点是时间复杂度高,而递推专门来克制这个问题。递推有两种推法:顺推和逆推。顺推就是从前往后推,逆推就是从后往前推。递归和递推最有意思的那就是找递推式。看下面的递推题。
2024-08-31 12:48:25
1048
原创 (二十六)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
1071
原创 (二十五)递归
同时在棋盘上的某一点有一个对方的马(如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
786
原创 (二十四)进阶算法
段错误(segmentation fault)可以理解为函数内的变量占用字节太大了,也可能是访问了野指针(指向。,从2开始看(因为1不是质数也不是合数),2是质数,筛选掉所有是2的倍数的数,它们是合数,随后看下一个没有被筛掉的数:3,再来筛掉,然后看数字5,把数字五的倍数筛掉…经过12天的“魔鬼集训”,我又回来更新了。我们可以仿造埃氏筛,做一个用于存储数值的数组。函数外,一是无法访问,二才是段错误。筛到不能筛时,就不可能被。质数表和质数筛都得放在。但是这样会重复算一些数字。时,可以先不考虑筛掉。
2024-07-28 20:28:52
1191
原创 (二十三)高精度运算
这次,高精度帖子,它来了!还记得C++的类型吗?int类型最多可以存储10位数(到十亿),就连long long类型最多也只能存储20位数(到一千京),因此short类型的存储最大值可怜得只有5位(到一万),而强大的高精度比long long类型大好几十倍。因为这种数很大,因此有一种叫法——大数。高精度数没有办法直接加减乘除,应该怎么办呢?指针与迭代器位运算与进制联合体(union)类(class)二十三:高精度运算二十四:算法进阶二十五:递归vector容器二十七:递推set容器。
2024-07-12 13:18:18
3148
原创 (二十二)类(class)
你见过类吗?就以猫为例,普通的猫喜欢舔毛、半夜睡不着,猫有它的岁数,颜色,依靠这些属性(长什么样)与方法(怎么做),便做出了猫类。猫也有很多特殊特征,病猫、凶猛的猫、只有两条腿的猫,甚至是会唱歌的猫……这就是一个类的构造前言提到,类中有属性和方法两类,具体定义方法如下class T {.........}Users;一样的,structunion和class都不要把后面的分号丢了,因为这填的是使用者列表publicprivate和protectedpublic。
2024-07-11 13:20:13
922
原创 (二十一)联合体(union)
你见过一个联合吗?假如我们以弓箭手值班为例,他们轮流值班,而不是一齐值班,这就是一个联合体。在说道联合体union的时候,就不得不回忆一下结构体struct了,它的定义是这样的int num;char sex;在定义联合体时也一样,只不过关键字struct要改为union,就像这样int num;char sex;这次本来打算连着类class和union写了,但union的篇幅有点大,所以我打算分段写指针与迭代器位运算与进制二十一:联合体(union二十二:类(class。
2024-07-08 16:41:22
941
原创 (二十)位运算与进制
你听说过进制吗?你知道进制怎么表示吗?你知道进制如何转换吗?这篇帖子就能get进制。另外,在二进制中,我们还会用到位运算符号只有0和1两个数字,加法遵循“逢二进一”的原则,减法遵循“借一为二”原则。二进制数101001010100101010010写作10100102101001020b10100100b10100100b1010010或1010010B1010010B1010010B。这是计算机中经常使用的,因此使用位运算会大大降低运算复杂度。
2024-07-07 12:39:07
1462
原创 (十六)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
803
原创 (十一)二维静态数组
假如说一个变量是一个点,那么一个一维数组就是一条线,二维数组就是一个面这里还是下标原则//定义一个xs*ys大小的二维数组,不赋值//定义一个二维数组,填了多少值就有多少大小//定义一个xs*ys大小的二维数组并全部赋值为0。
2024-06-23 13:18:13
282
转载 (八)一维静态数组
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
128
转载 (七)类型与定义
宏定义是一种在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
123
转载 (六)选择语句和运算符
小明的考试成绩出来了,他知道自己的成绩小于90没有好果子吃,所以他在考试后养成了一个习惯:如果分数考得好(>90),则说“yes”,否则什么也不说。输入一个数字n,表示小明的分数。而家人看到后,也会做出选择。考到了优:“不错,进步了”。考到了良:“继续努力,争取下次优”。版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。指输出一个字符串,没有任何格式,并将最后的字符串截止符。在c++中,可以实现选择语句判断,另外,在只有。输入小明的分数,最后输出等级。结束,学费一个赞,拜拜。
2024-06-22 10:00:37
106
转载 (五)c++ iomanip
版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。在c++中,有一个库,运用它时要使用头文件。stdin & stdout的加速代码。配合的函数,当然,不想用这个库,就用。中,如果不确定精度或场宽,可以替换为。当然,你记不住可以使用万能头文件。在这个库中包含了许多和。
2024-06-22 09:56:17
311
转载 (四)加减乘除模
看到标题,谁不会加减乘除呢?但是,我们今天要让C++计算数的和差积商,怎么办?早在两年半前,我就讲了怎么算和。版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议。再将除运算与模运算(mod)
2024-06-22 09:51:52
67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人