C/C++语言学习
文章平均质量分 64
C/C++语言学习
Qhumaing
嘿嘿嘿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++学习:二叉树的创建以及遍历
摘要 本文实现了一个二叉树的创建与遍历程序,采用层序创建法构建二叉树,支持多种遍历方式。程序使用字符'0'表示空节点,实现了递归和非递归的中序、前序、后序遍历,以及层序遍历。同时提供了计算树高和释放内存的功能。测试用例展示了一个包含9个节点的二叉树,程序正确输出了各种遍历结果和树高(4层)。该实现展示了二叉树的基本操作,包括创建、遍历和销毁等完整生命周期管理。原创 2025-12-01 21:08:37 · 166 阅读 · 0 评论 -
7-2 实验2-2(循环队列)
本文介绍了两种方式实现循环队列:顺序存储和链式存储。顺序存储使用数组实现,通过牺牲一个存储单元区分队列空满状态,实现CreateQueue、IsEmpty、IsFull、AddQ、DeleteQ等操作。链式存储则通过链表结构实现,在链表尾插入节点(入队)和头删除节点(出队)。两种实现都需处理队列空满判断,并符合题目要求:数组长度5最多容纳5元素,操作包括入队、出队及剩余元素输出。输入样例演示了10条指令操作,包括入队、出队及最终队列状态输出。关键点在于正确维护队首队尾指针和空满判断。原创 2025-11-14 17:49:13 · 297 阅读 · 0 评论 -
7-1 最大子列和问题
本文介绍了求解最大子列和问题的四种算法实现,重点分析了各算法的效率优化过程。暴力解法(O(n³))通过三层循环计算所有子列和,效率最低;改进版(O(n²))减少为双层循环;分治法(O(nlogn))采用递归策略,将问题分解为左右子问题和跨中线子问题;最优解法在线处理(O(n))实时维护当前和,遇到负和及时重置。实验数据显示各算法运行时间差异显著,从3279ms到17ms不等,验证了算法优化的重要性。在线处理算法效率最高,适合处理大规模数据(10⁵级别)。原创 2025-11-01 11:04:02 · 212 阅读 · 0 评论 -
C++学习——函数返回数组
首先不推荐函数返回数组,在C++中,函数不能直接返回一个本地数组,因为数组是分配在栈上的,当函数返回时,其栈帧会被销毁,因此返回的数组指针将会指向一个已释放的内存区域,这是未定义行为。原创 2024-11-27 15:58:44 · 1694 阅读 · 0 评论 -
C++学习——static详解
在C++中,static关键字有几种不同的用途,它可以用来控制变量的存储期限、函数的链接属性以及类成员的可见性和生命周期。以下是static。原创 2024-11-27 15:31:46 · 465 阅读 · 0 评论 -
C/C++学习-返回指针及局部变量的生命周期
在C和C++中,函数可以返回指针,这意味着函数的输出是一个内存地址。原创 2024-11-21 16:06:57 · 663 阅读 · 0 评论 -
C/C++学习-引用
引用的声明方式是在变量名前加上一个符号。int a = 10;// ref是a的引用这里,ref是变量a的引用,意味着ref是a的另一个名字,任何对ref的操作实际上都会作用于a。引用是C++语言的一个特性,它提供了一种方便的方式来间接访问变量,而不需要使用指针的解引用操作。正确使用引用可以提高代码的清晰度和效率,但需要注意避免其潜在的陷阱。原创 2024-11-21 15:57:04 · 463 阅读 · 0 评论 -
C/C++学习-clion快捷键
原创 2024-11-20 14:41:39 · 136 阅读 · 0 评论 -
C/C++学习-常量指针&指针常量
指针常量指的是指针本身是一个常量,也就是说,一旦指针被初始化指向某个地址,它的值就不能再改变,但是它可以用来修改它所指向的数据(前提是该数据不是常量)。当我们在C或C++中使用一个常量指针指向常量数据时,这意味着指针本身和它所指向的数据都不能被修改。常量指针是C/C++语言中的一个概念,它指的是指针本身可以改变指向,但是通过指针访问的数据是常量,即不能通过指针来修改所指向的数据。总结来说,声明一个常量指针指向常量数据,可以确保指针本身和它所指向的数据在声明后都不会被修改,这对于维护程序中的不变性非常有用。原创 2024-11-17 16:35:13 · 1813 阅读 · 0 评论 -
C++学习-空指针推荐使用nullptr
来初始化空指针,以获得更好的类型安全性和代码清晰性。参数的重载版本,这取决于编译器的具体实现。在C++11标准之后,推荐使用。因此,在C++中,推荐使用。参数的重载版本,而使用。原创 2024-11-17 16:09:20 · 392 阅读 · 0 评论 -
小白C/C++语言常见问题(持续更新)
如果你有一个指向数组的指针,那么就没有直接的方式来获取数组的长度,除非你事先知道长度并传递它。在C语言中,数组本身并不直接存储其长度信息,因为数组在传递给函数时会退化为指针,指针不包含关于数组大小的信息。例如,在 main 函数中,定义了一个 Contacts 类型的数组 contacts,并在循环中使用 scanf 函数来读取并存储联系人的信息。这两个模板类可以被视为轻量级的结构体,能够存储不同类型的元素。long类型用于存储较大的整数,但它的范围仍然有限(通常是32位或64位,取决于系统和编译器)。原创 2024-10-31 11:39:38 · 929 阅读 · 0 评论 -
[NOIP2003 普及组] 乒乓球
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。原创 2024-10-31 10:25:11 · 798 阅读 · 0 评论 -
C++list链表
在插入和删除操作(尤其是在链表的中间)时提供了更好的性能,因为它不需要重新分配内存或移动现有元素。不支持随机访问,所以不能使用下标运算符(是一种序列容器,它实现了双向链表。您需要使用迭代器或范围。原创 2024-10-24 09:35:45 · 432 阅读 · 0 评论 -
C++二分查找法,upper_bound与lower_bound
二分查找法(Binary Search)是一种在有序数组中查找特定元素的搜索算法。二分查找法的工作原理是通过不断将搜索区间分成两半来缩小查找的范围,每次比较中间元素与目标值,根据比较结果决定是继续在左半边还是右半边查找。首先,确定数组的中间位置。比较中间位置的元素与目标值。如果中间位置的元素正好是目标值,则搜索过程结束。如果目标值小于中间位置的元素,则在数组的左半边继续搜索。如果目标值大于中间位置的元素,则在数组的右半边继续搜索。重复上述步骤,直到找到目标值或搜索范围为空。原创 2024-10-22 21:13:36 · 1866 阅读 · 0 评论 -
C++sort排序
在 C++ 中,你可以通过传递一个自定义的比较函数(或 lambda 表达式)给std::sort函数来自定义排序规则。这个比较函数需要接受两个同类型的参数,并返回一个布尔值,表示第一个参数是否应该排在第二个参数之前。原创 2024-10-22 11:09:58 · 1808 阅读 · 0 评论 -
洛谷 B2141 确定进制
6×942对于十进制来说是错误的,但是对于13进制来说是正确的。即613×9134213,而42134×1312×1305410。你的任务是写一段程序读入三个整数pq和r,然后确定一个进制B2≤B≤16使得p×qr。如果B有很多选择,则输出最小的一个。p11q11r121,则有113×1131213,因为1131×311。原创 2024-09-30 19:13:17 · 871 阅读 · 0 评论 -
C语言PTA-计算最大游戏胜率
游戏中心新出了一种游戏,名叫“三连胜”,规则很简单:首先从三场比赛中选出任何一场,然后对于每一个选定的比赛,猜三个可能的结果中的一个——即W代表赢,T代表平,L代表输。为了获得最大的胜率,我们必须选择第三局的W,第二局的T,第一局的T。如果常数为2,则最大胜率为(4.1×3.1×2.5×65%-1)×2=39.31(精确到小数点后2位)。每个输入包含一个测试用例,测试用例包括三行,分别对应三场比赛的胜率,每一行依次给出每一场比赛赢、平、负的胜率。对每一组输入,输出最佳选择以及可能赢得的最大胜率。原创 2024-09-21 14:30:30 · 754 阅读 · 1 评论 -
C语言PTA-勇争前三
题目描述 pta迎新赛开始了,因为前三名同学有奖,所以大家都想得到前三名。从键盘输入若干个学生成绩(不超过100个),输出每组排在前3高的成绩。一行,输入若干个学生成绩(整数表示,范围0~100),用空格分隔,以负数结尾(注意:结尾负数不是学生成绩)。一行,输出成绩最高的前3个,用空格分隔,结尾没有空格,若不足三人的话,用字符#补上。原创 2024-09-21 13:44:42 · 493 阅读 · 0 评论
分享