- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 C++基础(十四)——异常处理与错误管理
public:public:// 继承构造函数public:try {// 处理超时,可能重试// 处理连接失败,切换备用服务器// 处理其他网络异常恭喜你!现在你已经掌握了让程序在灾难中保持优雅的核心技能。
2026-04-27 21:28:16
207
原创 C++基础(十三)——模板与泛型编程(超详细)
注意Pair<T1, T2>——在类外,必须写完整的实例化类名。// 定义一个概念:要求类型T必须是“可打印的”// (即T类型的对象能以 << 输出到cout中)// 约束函数模板:只接受“可打印”的类型std::cout << "值:" << value << std::endl;requires(T a)后面的花括号里写的是对类型T的能力要求:检查这些表达式是否合法,以及(可有可无)表达式的结果是否可转换为指定的类型。a + b;// 检查 a + b 是否合法。
2026-04-26 21:08:11
35
原创 C++基础(十二)——标准库算法
STL算法和容器之间不是强绑定的——算法并不知道操作的具体是什么容器,它只通过迭代器来跟数据打交道。这种解耦设计就像是一位经验丰富的搬家师傅:他不需要认识你家里的每一个人(不需要了解容器的内部类型),只需要按照门牌号清单(迭代器范围)搬运物品。这就让同一个算法(比如sort)可以同时服务于vector、deque、原始数组,甚至任何自定义的可迭代类型。所有的STL算法都以迭代器对[begin, end)作为输入,表示一个“左闭右开”的范围。
2026-04-26 17:22:08
74
原创 C++基础(十一)——容器:栈、队列、映射等
STL,全称Standard Template Library(标准模板库),是C++标准库中最璀璨的明珠。它不是一个人写出来的,而是由Alexander Stepanov等人在惠普实验室开创,后被C++标准委员会纳入标准库。容器(Container):存放数据的“盒子”,比如vector、map、list。算法(Algorithm):对数据进行操作的“菜谱”,比如sort、find、count_if。迭代器(Iterator):连接容器和算法的“万能钥匙”,让算法不关心容器底层的实现差异。
2026-04-26 11:03:52
42
原创 C++基础(十)——内存、智能指针与RAII思想
恭喜你!现在你已经掌握了C++内存管理的精髓——从内存分区到RAII,从三大智能指针到C++26的最新安全特性。快速回顾:· 内存五区:栈(临时工)、堆(自留地)、全局/静态区(钉子户)、常量区(圣殿)、代码段(大脑)。· RAII:把资源的生命周期绑定到对象上,构造获取,析构释放,异常安全。· unique_ptr:独占所有权,零开销,不可复制可移动,大多数场景的首选。· shared_ptr:共享所有权,引用计数,有控制块开销,注意循环引用。
2026-04-26 09:57:48
44
原创 C++基础(九)——类与对象(超详细)
在C++中定义类,使用关键字class(或者struct,后面会讲区别)。public:// 公有成员:外部可以访问// 通常成员函数放这里private:// 私有成员:只有类自己的成员函数可以访问// 通常成员变量放这里protected:// 保护成员:对派生类可见(后面讲继承时详解)访问控制是类的核心安全机制,有三把“钥匙”:· public:公共区域,外面的代码随意进出。· private:私有区域,只有类自己的成员函数能进去,外部代码一律免入。
2026-04-26 09:30:47
194
原创 C++基础(八)——指针、地址和内存
好,既然地址就是一个整数,那我们能不能用一个变量把地址存起来呢?当然可以!这种“存地址的变量”就是指针。// 普通变量,存的是数据18// 指针变量,存的是age的地址拆解一下这一行:int* ptr = &age;· int*:表示ptr的类型是“指向int的指针”。注意:指针本身的类型要匹配它所指向的数据的类型。· ptr:这个指针变量自己的名字。· &age:把age的地址取出来,存进ptr里。现在,ptr这个变量里面装的是age的门牌号。
2026-04-25 12:14:26
574
原创 C++基础(七)——函数(超详细)
返回类型 函数名(参数列表) {// 函数体return 返回值;// 如果返回类型不是void解析一下:· 返回类型 bool:这个函数最后会回馈给你一个布尔值(true或false)。· 函数名 isEven:起名字的规则和变量一样,建议用动词或动词短语,让人一看就知道功能。· 参数列表 (int number):这个函数需要一个int类型的输入,在函数内部它的名字叫number。· 函数体 { return number % 2 == 0;}:花括号里写具体的执行逻辑。
2026-04-25 11:42:44
141
原创 C++基础(六)——数组与字符串
数组是一块连续的内存空间,里面存放着一串相同类型的数据。类型相同:一个数组里只能放同一种类型的数据(全是int、全是double……)。大小固定(对于内置数组) :一旦创建,数组的长度就不能改变。连续存储:所有元素在内存中是紧密相邻的,这赋予了数组极高的访问效率。数组就像一列首尾相接的火车车厢。你有一列int号列车,它的每节车厢都只能装整数。你可以通过“第几节车厢”(下标)立刻找到里面的东西(元素),因为这列火车的车厢是连续编号的。函数用途注意strlen(s)获取长度(不含’\0’)
2026-04-23 23:14:41
251
原创 C++基础(五)——屏幕和文件输入输出
恭喜你!现在你已经掌握了让C++与外界“对话”的核心技能。快速回顾:· 流的概念:数据传送带,统一的I/O抽象· 标准流对象:cin(输入)、cout(输出)、cerr/clog(错误/日志)· 格式化输出:fixed + setprecision控制小数,setw + left/right控制对齐· 字符串输入:getline读整行,注意cin.ignore()清除缓冲区· C风格I/O:printf/scanf,占位符要记牢,&不能忘。
2026-04-23 17:52:55
239
原创 C++基础(四)——流程控制语句(超详细)
1. if/else/for/while后面永远加花括号{}——即使只有一条语句。这能避免无数低级Bug。2. 比较时把常量放左边——if (5 == a),防赋值。3. 能用范围for就别用普通for——更简洁,更安全。4. switch的default不要省略——处理意外情况。5. 尽量避免goto——除非跳出多重嵌套循环且没有更好的办法。6. 循环变量不要在循环体内修改——除了正常的更新表达式,不要在循环体内随意修改循环变量,否则容易导致逻辑混乱。恭喜你!
2026-04-23 13:11:46
26
原创 从思想萌芽到智能觉醒:人工智能发展七十年演进史
从1950年图灵在论文中写下“机器能思考吗?”这个问题,到2025年DeepSeek上线不足20天即获得3000万用户,人工智能已经走过了整整七十五年的历程。这是一部充满戏剧性的技术进化史:它经历过1956年达特茅斯会议的曙光初现,也经历过1970年代和1990年代的两度寒冬;它见证过1997年“深蓝”击败卡斯帕罗夫的高光时刻,也亲历过2012年AlexNet开启深度学习时代的范式革命。
2026-04-22 22:54:36
80
原创 C++基础(三)——运算符与表达式(超详细)
1. 多用括号:不确定优先级时,加括号。括号既能让意图清晰,又能防止Bug。2. 小心副作用:避免在同一个表达式中多次修改同一个变量。3. 利用短路求值:先检查指针是否为空,再解引用。4. 善用复合赋值:a += b比a = a + b更简洁。恭喜你!现在你已经掌握了让C++计算表达式的核心技能。快速回顾:· 优先级和结合性决定了表达式的计算顺序· 左值有地址、能放在等号左边;右值只是临时值· 算术运算符(+ - * / % ++ --)让计算机做数学· 比较运算符(==!
2026-04-22 22:28:14
174
原创 C++基础(一)——简介&你的第一个程序
Visual Studio是一个集成开发环境(IDE,Integrated Development Environment)。你可以把它理解成一个“编程瑞士军刀”——它集成了写代码的编辑器、编译代码的编译器、调试程序的调试器,以及项目管理工具等所有你需要的功能。对于新手来说,用IDE而不是手动折腾命令行编译的好处简直不要太多:语法高亮让你一眼看出关键字;智能提示在你敲代码时主动“递上”候选;调试器让你能一行行跟踪代码运行过程,精准定位Bug。
2026-04-19 18:41:52
38
原创 C++开发自己的编程语言(五)——更多运算符
家人们好呀!!!前面历经千辛万苦我们也是成功地添加了更多的数据类型。但是,我们的编程语言现在只有加减乘除四种运算,显然这是不够的,连最简单的条件判断都做不了(是的,后续会添加条件判断的程序结构)。所以这一节我们一起来为我们的编程语言添加更多的运算符。
2026-04-18 23:27:27
254
原创 从0与1到自然语言:编程语言进化史
回望七十余年的编程语言发展史,从机器语言到汇编语言,从FORTRAN到Rust,每一次进步都反映了人类对“如何更好地表达计算”这一问题的深入思考。编程语言的数量从寥寥数种增长到2500种以上,但核心理念却保持着惊人的延续性——1958年提出的许多概念至今仍在使用。或许,编程语言发展的真正意义不在于创造出多少种语言,而在于不断降低人与机器沟通的门槛,让更多人能够参与创造。正如高德纳所说:“编程是讲述计算机做什么的艺术。”而编程语言,正是这门艺术的画笔。未来这幅画卷将如何展开,我们拭目以待。
2026-04-17 23:18:06
443
原创 从零开始用C++手写一个BP神经网络
BP神经网络是一种多层前馈神经网络。它通常包含以下几个部分:· 输入层:接收原始数据,神经元数量等于数据特征的维度· 隐藏层:一层或多层,负责提取数据中的非线性特征· 输出层:产生最终的预测结果每一层由若干个神经元(节点)组成,相邻层之间的神经元通过带权重的连接相互关联。前向传播的过程,就是将输入数据逐层向后传递,最终得到输出结果。我们定义一个NeuralNetwork类,包含网络结构、参数以及前向传播和反向传播的方法。```cppprivate:// 输入层神经元数量。
2026-04-17 18:40:17
411
原创 C++开发自己的编程语言(四)——更多数据类型
家人们好呀!!!我们知道,一个编程语言绝不止一种数据类型,它们有不同的用途和内存占用。目前我们自己的编程语言还只有一个可怜孤单寂寞寥落的int。。。为了实现更多功能,以及更好地利用内存,我们需要添加更多的数据类型。唉。。。说到int的孤寂。。。我又想伤春悲秋了。。。为什么我粉丝就那么少,为什么我的文章如此优质却没有流量,为什么辛辛苦苦敲了数万字却没有入买我的专栏,难道不知道知识是无价的吗。。。我服了 为什么我一个学生要如此命苦!我还只是个学生啊,却已经遭到了社会的毒打!
2026-04-15 17:46:45
508
原创 C++开发自己的编程语言(三)——变量
家人们好呀!!!我们完成基本表达式的计算后,要迈出重要的一步了:变量。因为目前的数据类型只有int,所以我们目前只需要考虑int类型的变量,但同时,我们也要考虑以后更多的数据类型以及面向对象的功能。
2026-04-15 03:16:37
156
原创 C++开发自己的编程语言(二)——表达式计算
家人们好呀!!!OK呀上一节内容中我们也是成功地拆分了token,接下来我们要完成最重要的一步之一(好像每一步都很重要?)——根据这些token进行基本的表达式计算。
2026-04-12 21:44:50
43
原创 C++开发自己的编程语言(梦开始的地方)——Token
家人们好呀!!!当你们在写代码的时候有没有想过这样一个问题:如果哪一天,自己造了个编程语言,然后别人用自己的编程语言去开发一些东西。。真的很酷诶。。爽爆了好吧。。。果然梦里啥都有。但这其实不是一个梦。本系列教程会手把手地教会你如何用C++实现一个属于自己的编程语言。当然这只是一个可行的范例,为了让大家更好理解很多方面未必最佳。我的目的是,让你们理解最基本的方法和逻辑,完全可以借题发挥,在此基础上做出更优质的编程语言。以及,你不仅可以用C++来实现,本教程的思想也可用于C、Java等其它语言。
2026-04-12 21:43:43
446
原创 Easyx教程(一)——下载及创建窗口
关于用C++做2D游戏,C++并没有提供专门的库,但是我们可以借助第三方库来实现2D游戏的制作。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。
2022-12-24 20:11:15
3033
枪战生涯 1.0 (Gunplay Career)
2023-06-24
C++做飞机大战(代码+程序)
2022-12-19
名称:数独神器 作用:可以解出任何9*9数独
2022-12-16
OpenGL渲染的问题
2024-06-07
OpenGL渲染效率
2024-06-02
C++如何做扫码支付
2023-10-22
关于C++做扫码支付的问题
2023-10-15
关于C++的一道ti
2023-07-29
关于MC活塞的一个问题
2023-06-17
关于EasyX中绘图的一个问题
2023-05-20
关于EasyX的一个小问题
2023-05-21
一个关于EasyX的小问题
2023-05-20
C++ Socket联机问题
2023-05-01
一个关于C++的问题算法题
2023-05-07
一个关于C++的问题算法题
2023-05-07
一道我不会的很简单的timu
2023-04-30
C++把数据保存在网络上
2023-04-30
怎么在Microsoft store上发布自己做的软件
2023-04-13
关于OpenGL显示文字的问题
2023-02-07
关于USACO的问题
2023-01-14
关于OpenGL渲染的问题
2023-02-05
USACO注册的问题
2023-01-06
有哪些信奥赛培训机构
2023-01-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2