自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 【C++语法】手写堆与有关堆的容器/函数

本文介绍了C++中堆的实现与相关容器/函数。主要内容包括:(1) 手写堆的实现方法,详细讲解了堆的构建、插入、删除和获取堆顶操作;(2) STL中的优先队列priority_queue,说明其定义方法和自定义比较器的实现;(3) algorithm中与堆相关的函数,如make_heap等。文章提供了完整的代码示例和复杂度分析,帮助读者理解堆的基本操作及其在C++中的实现方式。

2025-08-16 16:12:40 1043

原创 【C++语法】布尔值、判断与选择

本文介绍了C++中的布尔值、判断表达式和选择语句。主要内容包括:布尔类型(bool)的定义及使用,true/false常量;6种大小比较运算符和3种逻辑运算符(&&、||、!)的使用;if-else、switch等选择语句的语法结构;以及三目运算符(?:)的用法。文章通过代码示例详细说明了各种语法结构的应用场景和使用方法,为C++初学者提供了基础的选择控制流程知识。

2025-08-14 19:38:29 1335

原创 【算法】堆(Heap)的概念、懒删除(Lazy Deletion)与堆排序(Heap Sort)

本文介绍了堆(Heap)数据结构的概念、操作及其应用。堆是一种完全二叉树,分为大顶堆和小顶堆,具有高效的插入、删除和查询操作。堆的存储采用顺序表,通过特定公式访问父子节点。堆的操作包括构建(O(n))、插入(O(log n))、删除堆顶(O(log n))和访问最大值(O(1))。 文章还介绍了堆的懒删除技术,通过标记删除状态实现延迟删除,支持删除特定插入顺序的元素或特定值。最后提到堆排序,利用堆的特性实现高效排序。堆结构在数据处理和算法设计中具有重要应用价值。

2025-08-12 12:23:40 1600 1

原创 【C++语法】输出的设置 iomanip 与 std::ios 中的流操纵符

本文详细介绍了C++中iomanip和std::ios提供的格式化输出方法。iomanip包含多种流操纵符,用于控制输出的对齐方式(setw、left/right)、小数精度(fixed、setprecision)、进制转换(hex、oct)以及布尔值显示(boolalpha)等。同时还介绍了std::ios中的格式设置函数resetiosflags和setiosflags,可实现格式重置和叠加。这些工具能有效提升C++输出的格式化控制能力,适用于各种数值和文本的精确显示需求。

2025-08-11 13:44:20 1012

原创 【算法】图的 深度优先搜索(DFS)与 广度优先搜索(BFS)

本文介绍了图的两种基本遍历算法:深度优先搜索(DFS)和广度优先搜索(BFS)。DFS采用递归方式实现,沿着一条路径深入探索直至无路可走再回溯,适用于寻找所有可能路径;BFS利用队列实现分层扩展,保证找到最短路径,适用于迷宫求解等问题。两种算法都需要标记已访问节点防止重复遍历。文章通过图示和代码示例(包括邻接表存储和迷宫求解)详细说明了它们的实现原理和应用场景,并指出了编程实现中的关键点与常见错误。

2025-08-10 20:10:54 1103 1

原创 【C++语法】加减乘除模 与 类型的强制转换

本文介绍了C++中的基本运算符和类型转换。主要内容包括:(1) 四则运算和取模运算的优先级规则及使用场景,特别是整数与浮点数除法差异;(2) 取整运算的多种实现方法,包括向上取整、向下取整、四舍五入的数学公式和库函数方案;(3) 取模运算在不同语言中的行为差异及实现真模运算的方法;(4) C/C++中的强制类型转换语法,包括C风格的转换和C++提供的四种转换方式(static_cast、dynamic_cast等),并比较了它们在安全性和使用场景上的区别

2025-08-04 20:47:45 974

原创 【C++那些趣事】如何让输出的内容变色

这篇文章介绍了在C++中如何为控制台输出添加颜色效果。对于Windows系统,需要包含windows.h头文件,使用SetConsoleTextAttribute()函数并通过三基色常量或颜色编号来设置文本和背景颜色。Linux系统则使用特殊的ANSI转义序列实现颜色输出。文章还提供了具体的代码示例和颜色编号对照表,并指出这些方法在不同系统和环境中的兼容性差异。需要注意的是,这些颜色设置会影响后续所有输出,且效果可能因控制台主题而异。

2025-07-31 08:00:00 616

原创 【C++语法】浮点型与 scanf 和 printf

本文介绍了C/C++中的浮点数类型及输入输出函数scanf和printf的使用。主要内容包括:(1) 三种浮点类型float、double和long double的存储范围与精度;(2) printf的格式化输出语法,包括不同类型数据的格式标识符和填充规则;(3) scanf的格式化输入语法,强调变量前需加&;。文章配有代码示例,展示了如何使用这些函数进行浮点数的输入输出操作。这些函数既适用于C语言也适用于C++,且无需使用命名空间。

2025-07-30 11:11:15 839

原创 【算法】图的存储

本文介绍了三种图的存储方式: 邻接表:使用静态数组套动态数组结构,适合表示稀疏图,空间利用率高,但查询效率较低。可支持带权图,通过结构体存储邻接点和边权。 邻接矩阵:使用二维数组直接表示节点间连接关系,适合稠密图,查询效率高但空间复杂度为O(V²)。对角线元素为0,无边用∞表示。 边表(链式前向星):使用一维数组存储边信息,结合头指针数组,空间复杂度为O(E),适合需要频繁遍历边的场景。通过倒序连接实现高效遍历。 三种方法各有利弊,应根据具体应用场景选择合适的存储结构。

2025-07-25 21:45:17 746 1

原创 【C++语法】整型与 std::cin 和 std::cout

本文介绍了C++中基本的输入输出语法和使用方法。主要内容包括:(1) 整型变量的定义方式及存储范围;(2) cout的使用方法,包括字符串、字符、数字的输出以及变量代入;(3) cin的输入方法;(4) C++输入输出加速器的使用。文章通过具体代码示例详细讲解了这些基础语法,并强调了编写C++程序时的基本框架和注意事项,如主函数结构、命名空间使用等,适合初学者学习C++的基本输入输出操作。

2025-07-24 16:40:41 1448

原创 【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 977

原创 【算法】图的定义与一些常用术语

本文介绍了图论的基本概念和术语。图由节点集合V和边集合E组成,比树结构更灵活,允许任意连接。主要术语包括:边权、有向图/无向图、路径/途径、环/重边/自环、度/入度/出度、联通分量、弱/强连通、稀疏/稠密图等。还介绍了四联通和八联通在迷宫问题中的应用及编程实现方式。这些基础概念为图论算法学习提供了必要准备。

2025-07-20 10:10:52 736 1

原创 (三十五)树与存储

2025-02-15 14:00:15 920

原创 (三十四)神奇的计算机

计算机的构造、进化史、存储等内容

2024-11-17 13:59:15 2080

原创 (三十三)队列(queue)

形象点儿说,队列相当于学校的排队的食堂,先来排队的先得到饭,然后先走;后来排队的最后得到饭,最后走。STL 专门提供了关于栈和队列的容器,还拓展了一个双向队列(deque)三个库均可使用导入这是 STL 独有的专属容器,它也有队头和队尾,但插入和删除可以同时进行。形象一点就是医院的“军人优先”。还是一个队列,普通人往后排,军人们有可以排在前面的特权。因此,队头可以插入删除,队尾也可以。

2024-11-15 21:59:01 1166

原创 (三十二)栈(stack)

关于栈的用法、特征以及考题类型

2024-09-22 13:23:21 853

原创 (三十一)前缀和与差分

关于前缀和,关于差分,关于点赞,关于关注,关于收藏,关于转发。。。

2024-09-17 19:50:47 1423

原创 (三十)二分查找(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 1303

原创 (二十九)STL map容器(映射)与STL pair容器(值对)

STL map 容器(映射)STL pair 容器(值对)

2024-09-05 21:46:18 1198

原创 (二十八)STL set容器(集合)

总之来说不管是C/C++还是python,foreach都是一个良心玩意,直接把复杂的for循环简化了。第一行表示它的类型(一般用class类型表示这个主类的类型,也可以把。对了,set容器默认从小到大,怎么变为从大到小呢?在C++中基于容器迭代器的遍历给出了一种新的。一样的,他的迭代器类型是这个。)还是静态数组它们都有这个语法。,说明这个就是从小到大的排序器。),但一般排序用的函数统一类型。),还是老老实实的用迭代器(第二行表示它的排序器,默认为。这是set容器定义时的模版。我们可以发现比较器类型是。

2024-09-01 12:01:10 2026

原创 (二十七)递推

递推是递归的进阶,递归用函数来递,而递推用循环来递。递归的缺点是时间复杂度高,而递推专门来克制这个问题。递推有两种推法:顺推和逆推。顺推就是从前往后推,逆推就是从后往前推。递归和递推最有意思的那就是找递推式。看下面的递推题。

2024-08-31 12:48:25 1193

原创 (二十六)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 1165

原创 (二十五)递归

同时在棋盘上的某一点有一个对方的马(如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 822

原创 (二十四)进阶算法

段错误(segmentation fault)可以理解为函数内的变量占用字节太大了,也可能是访问了野指针(指向。,从2开始看(因为1不是质数也不是合数),2是质数,筛选掉所有是2的倍数的数,它们是合数,随后看下一个没有被筛掉的数:3,再来筛掉,然后看数字5,把数字五的倍数筛掉…经过12天的“魔鬼集训”,我又回来更新了。我们可以仿造埃氏筛,做一个用于存储数值的数组。函数外,一是无法访问,二才是段错误。筛到不能筛时,就不可能被。质数表和质数筛都得放在。但是这样会重复算一些数字。时,可以先不考虑筛掉。

2024-07-28 20:28:52 1233

原创 (二十三)高精度运算

这次,高精度帖子,它来了!还记得C++的类型吗?int类型最多可以存储10位数(到十亿),就连long long类型最多也只能存储20位数(到一千京),因此short类型的存储最大值可怜得只有5位(到一万),而强大的高精度比long long类型大好几十倍。因为这种数很大,因此有一种叫法——大数。高精度数没有办法直接加减乘除,应该怎么办呢?指针与迭代器位运算与进制联合体(union)类(class)二十三:高精度运算二十四:算法进阶二十五:递归vector容器二十七:递推set容器。

2024-07-12 13:18:18 3259

原创 (二十二)类(class)

你见过类吗?就以猫为例,普通的猫喜欢舔毛、半夜睡不着,猫有它的岁数,颜色,依靠这些属性(长什么样)与方法(怎么做),便做出了猫类。猫也有很多特殊特征,病猫、凶猛的猫、只有两条腿的猫,甚至是会唱歌的猫……这就是一个类的构造前言提到,类中有属性和方法两类,具体定义方法如下class T {.........}Users;一样的,structunion和class都不要把后面的分号丢了,因为这填的是使用者列表publicprivate和protectedpublic。

2024-07-11 13:20:13 971

原创 (二十一)联合体(union)

你见过一个联合吗?假如我们以弓箭手值班为例,他们轮流值班,而不是一齐值班,这就是一个联合体。在说道联合体union的时候,就不得不回忆一下结构体struct了,它的定义是这样的int num;char sex;在定义联合体时也一样,只不过关键字struct要改为union,就像这样int num;char sex;这次本来打算连着类class和union写了,但union的篇幅有点大,所以我打算分段写指针与迭代器位运算与进制二十一:联合体(union二十二:类(class。

2024-07-08 16:41:22 1043

原创 (二十)位运算与进制

你听说过进制吗?你知道进制怎么表示吗?你知道进制如何转换吗?这篇帖子就能get进制。另外,在二进制中,我们还会用到位运算符号只有0和1两个数字,加法遵循“逢二进一”的原则,减法遵循“借一为二”原则。二进制数101001010100101010010写作1010010210100102​0b10100100b10100100b1010010或1010010B1010010B1010010B。这是计算机中经常使用的,因此使用位运算会大大降低运算复杂度。

2024-07-07 12:39:07 1635

原创 (十九)指针与迭代器

本来这次我想写关于进制的帖子的,但是感觉指针在为后面的很多内容做铺垫,所以我先把关于指针的帖子写了。

2024-07-06 10:47:06 866

原创 (十八)排序

(1)函数交换法(2)临时存储法(3)位运算法。

2024-07-05 12:28:43 1345

原创 (十七)结构体(structure)

关于c/c++ 结构体(struct)的认识,例如定义、赋值、取值等操作

2024-07-04 18:40:19 580

原创 (十六)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 820

原创 (十五)function 函数

关于c++函数的介绍

2024-07-01 22:51:04 1140

转载 (十四)编译器设置

在DEV-C++中可以进行一些编译器设置,是很必要的本篇文本是全拓展文本。

2024-06-30 11:51:30 518

原创 (十三)动态字符串(string)

关于c++string的知识

2024-06-30 11:42:02 951

原创 (十二)基础算法

一些简单的算法

2024-06-23 17:59:58 2266

原创 (十一)二维静态数组

假如说一个变量是一个点,那么一个一维数组就是一条线,二维数组就是一个面这里还是下标原则//定义一个xs*ys大小的二维数组,不赋值//定义一个二维数组,填了多少值就有多少大小//定义一个xs*ys大小的二维数组并全部赋值为0。

2024-06-23 13:18:13 311

原创 (十)字符数组和ASCII码

关于C++ ASCII码

2024-06-22 14:50:32 620

转载 (九)循环的应用

在c++中,循环有很多用处,这次来讲一下。

2024-06-22 10:09:46 246

转载 (八)一维静态数组

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 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除