自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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++基础(二)——超详细变量与基本数据类型

恭喜你!读到这里,你已经掌握了C++变量和数据类型的基础知识!

2026-04-19 21:20:00 151

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

原创 C++的输入输出竟然还能这样用!

这几个输入输出的用法,能让你的程序变得出神入化!

2023-01-03 19:31:21 629

原创 C++输入输出(一)

带你了解C++的各种输入输出的方法

2023-01-02 15:41:14 3563

原创 C++字符类型

带你深入了解C++中的字符类型和变量所占内存空间

2023-01-02 14:30:22 1562

原创 C++变量及数据类型

带你认识C++中的变量和数据结构

2023-01-01 18:47:21 257

原创 你的第一个C++程序

一个简单的C++输出程序

2022-12-31 20:03:28 186 2

原创 C++简介

关于C++的简介及配置流程

2022-12-31 17:59:44 166

原创 用Java判断质数

用Java实现判断质数的功能

2022-12-24 20:19:16 160

原创 Easyx教程(一)——下载及创建窗口

关于用C++做2D游戏,C++并没有提供专门的库,但是我们可以借助第三方库来实现2D游戏的制作。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。

2022-12-24 20:11:15 3033

原创 用C++做一个文件加密器

用超简单的代码实现效果很好的文件加密!

2022-12-22 20:54:06 1583 2

原创 用C++做一个飞机大战

用C++做一个超好玩的飞机打战!含程序+源码!

2022-12-19 20:54:12 486

原创 用C++做高级病毒

用上这些病毒,能让电脑瞬间崩溃!

2022-12-19 15:57:01 3873 6

原创 C++的几个提速小技巧

用上这几个技巧,能让你的程序快几十倍!

2022-12-18 20:57:17 2761 3

原创 黑客技能——用C++远程关机别人电脑

用超级简单的代码实现远程关机别人的电脑

2022-12-18 16:29:02 4698 14

枪战生涯 1.0 (Gunplay Career)

一个2D的射击类游戏,可以在里面自由地建造和破坏方块,还可以获得各种各样的枪来击败敌人!不仅有单人游戏,还可以和你的好朋友一起多人联机!战斗吧!

2023-06-24

C++做飞机大战(代码+程序)

用C++做的一个飞机大战的游戏。这款游戏虽然图画得有点丑,但是功能丰富,非常好玩,同时还有背景音乐。本游戏主要是用easyx这个C++ 2D游戏引擎做的。在玩游戏的同时还能学习一下2D游戏的做法,是不是一举两得呢?赶紧下载吧!

2022-12-19

名称:数独神器 作用:可以解出任何9*9数独

内容概要:这个程序主要是用的搜索与回溯算法,最终得出数独的答案。 适合人群:有C++算法基础、热爱数独却不知道该怎么解答的人。 能学到什么:可以学到搜索与回溯算法的基本框架及应用范围,还可以尝试自己用这个算法做一些实用软件。 阅读建议:读代码的时候一定要认真思考它的原理,最好是实践一下,真正学到这个实用的C++基础算法。

2022-12-16

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

TA关注的人

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