
c++的学习
文章平均质量分 70
c++的一些认识
呱呱呱~
你我或许终究不是一路人
展开
-
教会计算机说第一句话——框架
第02行代码是为了简化代码的书写,这有点像我们约定了一个默认的范围,比如中午的时候你约同学去食堂一起吃饭,你会说:“我们一起去食堂吃饭吧!”,这里说的食堂,默认指的是学校的食堂。无论程序有多少行,都必须从05行的“{”开始执行,到第08行的return语句结束。cout是一个非常重要的内容,如果 应用的好可以实现非常强大的功能。下面是一些练习题,对于初学者为了快速上手并记住框架的代码,请不要复制框架,每次做题的时候都重新写一遍框架。上面程序的第01行就是告诉计算机:我要把所有的工具一个不落的。原创 2025-03-27 20:53:40 · 222 阅读 · 0 评论 -
数据存储—变量
不同瓶子之间的形状和材质各不相同,有的适合装水,有的适合装油,有的适合装醋,所有可以把这些瓶子分成不同的种类,即瓶子的“类型”不同。比如能存储整数的变量是整数类型,简称“整型”,能存储字母的变量是字符类型。当然,在生活中为了防止错拿调料瓶,比如放陈醋和酱油的瓶子很容易被混淆,我们还会为每个瓶子都贴上一个标签,比如“陈醋”、“酱油”、“色拉油”等等。在C++中也是如此,你想存储一个数据,你首先要有一个变量,而这个变量可不会凭空出现,你必须明确的向计算机系统表达你的需求:“计算机我需要一个瓶子!原创 2025-03-27 20:54:36 · 422 阅读 · 0 评论 -
数据存储—变量2
我们可以把变量看做装了水的瓶子,那这个问题就转换成如何交换两个瓶子里的水。最后,借来瓶子中的水倒入第二个瓶子中(还有别忘了把瓶子还给你的朋友)。因为我们是十进制的整数n,所以除以10的余数就是个位,商就是去掉个位以后的数值。另外这段代码直接修改了n的值,如果后面还需要用到n的值那么显然是不恰当的。123%10结果是3, 123/10的结果是12,即去掉个位以后的值。系统会用a的值赋为变量c赋值,这个过程中变量a的值是不会改变的。对于int类型变量有个非常特别的性质:当两个整数做除法的时候得到的结果是商。原创 2025-03-27 20:55:26 · 201 阅读 · 0 评论 -
让计算机学会自己思考
甲乙两个人在公园相遇,甲说我今年n岁了(n是一个两位的整数,个位和十位不相等),乙说,太巧了,你的年龄倒过来,就是我的年龄,请问两个人谁的年龄更大, 请输出那个更大的年龄?从键盘读入一个三位整数,判断这个三位整数是否是对称数(对称数指的是,这个数正过来和倒过来是同一个数,比如:121、686、808等数都是对称数),如果是对称数,则输出“Y”,否则输出“N”。在编程中,这种结构非常常见,因为它允许我们根据不同的条件执行不同的代码块,从而实现更复杂和灵活的逻辑。有的时候else部分不是必须的。原创 2025-03-27 20:56:17 · 445 阅读 · 0 评论 -
让计算机学会深入思考
闰年可以分为两种,一种是普通闰年,就是公历年份是4的倍数,且不是100的倍数的,为普通闰年(如2004年、2020年等);“逻辑非”运算其实是把bool类型的变量当做一个灯的开关:如果灯是开(true)着的,你按一下开关(逻辑非操作)灯就关(false)了;相反,如果等原来是关(false)着的,你按一下开关(逻辑非操作)灯就开(true)了。只有当它两边的值都为 true 的时候,整个表达式的结果才是 true,其余情况的结果都是false。只有它两边的值都为false,整个表达式的结果才为false;原创 2025-03-27 20:57:08 · 359 阅读 · 0 评论 -
循环的初识
在C++中,通常在这里写一个条件表达式,比如i <10,表示只要计数器变量i小于10,就要继续跑(继续循环)。在C++中,通常设置一个计数器变量,比如int i =0,i用来表示跑完了几圈,i=0说明你还没开始跑。在这个例子中,你可以想象成你每跑完一圈,都会按一下手腕上的计数器,告诉自己已经完成了第几圈。在C++中,我们通常在这里更新计数器变量,比如i++,表示每完成一次循环,计数器变量i就增加1。部分是你在跑每一圈时要做的事情。在编程中,我们通常在这里写需要重复执行的代码,比如打印出当前跑的是第几圈。原创 2025-03-27 20:58:17 · 387 阅读 · 0 评论 -
浮点型变量
从程序的逻辑上看,if语句中的条件是成立的,因此程序应该输出”Yes”。而1.1这个数据默认是双精度浮点型,因此只要把h的定义类型改为double,程序就会输出”Yes”。因此,当用一个浮点型的(常)变量对一个整型变量赋值时,浮点型变量的小数部分会被直接截断(不进行四舍五入操作),只把整数部分赋值给整型变量。但最正确的比较浮点型数据是否相等的方法应该是设定一个阈值(epsilon),只要两个数据的差值小于这个阈值就认为是相同的数据。即便,浮点型数据的小数部分是零,浮点型的(常)变量都不能参与取余运算。原创 2025-03-28 21:12:45 · 398 阅读 · 0 评论 -
字符型数据
负责发送消息的把秘密文件撕成两部分,有单词的部分写上自己的名字。然后把有单词和自己名字的纸片还给老师,把有数字的纸片送给负责接收数据的同学。因为计算机只能看懂数字,所以ASCII是一个非常重要的规则,它让计算机能够读懂我们的文字。在ASCII中,大写字母’A’的编号(我们称之为ASCII码)为65,大写字母’B’的ASCII码为66,其余的以此类推……当然存储的是字符’A’的ASCII——65。小写字母’a’的ASCII是97,’b’是98……数字’0’的ASCII是48,’1’是49……原创 2025-03-28 21:13:31 · 211 阅读 · 0 评论 -
循环和选择语句的应用
一开始的时候,变量i的值被初始化为1,然后判断i<=10是否成立,然后执行循环体中的代码(也就是“{}”包含的所有代码),无论循环体中的代码有多少,在这次循环的过程中,变量i的值保持1;然后变量i增加到2,经过条件判断开始第二次循环,这这次循环中,变量i的值保持2……爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。在 for 循环中,通常会使用一个变量来控制循环的执行,这个变量被称为循环变量。原创 2025-03-28 21:14:03 · 337 阅读 · 0 评论 -
循环的嵌套
外层循环可以用来遍历每个班级,内层循环用来遍历每个班级中的学生。然而在某些特定的场景中,无法确定循环的具体次数,这个时候就更适合用while语句。注意:for与while两种循环没有好坏之分,看具体的应用场景,而且可以相互的替代和转换。我们可以用循环嵌套来打印出每个月的日期。外层循环遍历月份,内层循环遍历每个月的日期。外层for循环控制变量i从0到2变化,每一次外层循环执行时,内层for循环的控制变量j都会从0到1完整地循环一次。图形的特点:一共n行,每行星号的数量等于行的序号,也就是说第i行有i个星号。原创 2025-03-28 21:14:49 · 271 阅读 · 0 评论 -
一维数组的了解
当完成第一趟排序时,数组中的最大的元素就会被排到数组的最后。我们用数据来演示一下,比如原来数组中的数据是 4 3 5 2 1,那么第一趟排序时,首先4和3比较,4大于3不满足升序规则,4和3交换位置,数据的数据变为:3 4 5 2 1;答案就是:最后一个元素向后移动一个位置,倒数第二个元素“挪”到原来倒数第一个元素所在的位置,倒数第三个元素“挪”到原来倒数第二个数据所在的位置,以此类推,直到把要插入数据的位置空出来为止。数组是由连续的内存位置组成的,最低的地址对应第一个元素,最高的地址对应最后一个元素。原创 2025-03-28 21:20:28 · 727 阅读 · 0 评论 -
【二维数组】与【多维数组】
这里只初始化了全部12个元素的六个元素,其余六个matrix[0][2]、matrix[0][3]、matrix[1][1]、matrix[1][2]、matrix[1][3]、matrix[2][3]元素默认初始化成了0。二维数组可以看作是数组的数组,它有两个维度,通常用于表示表格或矩阵。多维数组是二维数组的扩展,可以有三个或更多的维度。在初始化时,可以省略行数,编译器会根据初始化列表的数量自动推断行数。多维数组的初始化、遍历方式与二维数组类似,只是需要更多的嵌套。colSize 是数组的列数。原创 2025-03-28 21:21:14 · 139 阅读 · 0 评论 -
自定义函数
在C++中,自定义函数是一种非常重要的编程工具,它可以将一段特定功能的代码封装起来,提高代码的复用性、可读性和可维护性。通过自定义函数,可以将复杂的程序分解为多个小的、功能明确的模块,提高代码的可维护性和复用性。这个示例中,虽然在swap 函数内部交换了 a 和 b 的值,但由于传递的是a和b的值,所以并不会影响到 main 函数中的a和b的值。类似于传递变量的地址。调用函数时,需要提供函数所需的参数(如果有),并可以接收函数的返回值(如果有)。函数名:是函数的标识符,用于在代码中调用该函数。原创 2025-03-28 21:22:16 · 350 阅读 · 0 评论 -
结构体与联合体
在这个示例中,Student 是结构体名,它包含三个成员:id(整数类型,用于存储学生的编号)、name(字符串类型,用于存储学生的姓名)和 age(整数类型,用于存储学生的年龄)。在这个示例中,Data 是联合体名,它包含三个成员:i(整数类型)、f(单精度浮点数类型)和 str(字符数组类型)。结构体(struct)是一种用户自定义的数据类型,它允许将不同类型的数据项组合在一起,形成一个新的数据单元。联合体(Union),也被称为共用体,是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型。原创 2025-03-28 21:22:48 · 413 阅读 · 0 评论 -
c++字符串的初步认识与深入了解
推荐使用场景C风格字符串:嵌入式系统、与C库交互、性能敏感场景。:现代C++开发、需要安全性和易用性的场景。未来趋势随着C++标准演进,的功能和性能持续优化(如C++11的初始化语法),逐渐成为字符串处理的首选。总结:C++字符串处理需根据场景权衡选择。对于新手,的易用性和安全性更优;在特定需求下,C风格字符串的底层控制能力不可替代。掌握两者的差异与协同,能显著提升开发效率与代码质量。原创 2025-03-28 21:26:21 · 428 阅读 · 0 评论 -
string
(3)rbegin() 对应最后一个字符,rend() 对应第一个字符之前。(1)string自动管理内存,但频繁修改可能导致多次重新分配,可使用 reserve() 优化性能。原创 2025-03-28 21:26:50 · 854 阅读 · 0 评论 -
指针的了解
在C++中,指针是一个非常重要且强大的概念,它存储的是变量的内存地址。内存中的每个字节都有一个唯一地址(如 0x7ffeeb0b9d6c),指针的作用是直接操作这些地址,实现高效的数据访问和管理。//不实际交换变量的值,只交换pa和pb变量的值。//等价于 cout<< *(*(p+1)+2)// 声明一个指向函数的指针,该函数接受两个int参数并返回一个int值。//修改p指向地址的值,相当于修改变量num的值。//输出指针所指向的值。int* p = # // & 取地址符,获取num的地址。原创 2025-03-28 21:28:10 · 553 阅读 · 0 评论 -
文件的操作
在操作系统中,每个进程都有三个标准的输入输出流:标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)。文件重定向技术允许用户改变程序输入输出的默认方向,将原本要输出到标准输出设备(通常是屏幕)的数据输出到文件中,或者从文件中读取数据而不是从标准输入设备(通常是键盘)获取输入。“a”:以追加模式打开文本文件,如果文件不存在则创建,写入的数据会追加到文件末尾。“w”:以写入模式打开文本文件,如果文件不存在则创建,如果文件已存在则清空内容。“r”:以只读模式打开文本文件,文件必须存在。原创 2025-03-28 21:30:57 · 285 阅读 · 0 评论 -
枚举算法的了解
适用场景:问题解空间有限、数学约束明确、正确性优先的场景。优化方向通过数学建模缩小枚举范围。结合剪枝、并行计算等技术提升效率。在大规模问题中,优先考虑其他算法(如动态规划、分治)。通过深入理解枚举法的数学本质与工程实现,开发者能够在保证正确性的前提下,最大化利用计算机的计算能力,解决从经典数学问题到现代密码学挑战的各类复杂场景。原创 2025-03-28 21:37:03 · 894 阅读 · 0 评论