自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 复习总结记录十

stack 文档介绍1、 stack 是容器适配器,专用于后进先出的操作,只能从容器尾端进行元素插入和提取2、 容器适配器是对特定类封装作为底层容器,并提供一组特定的成员函数3、 stack 底层容器可以是任何标准的容器类模板或一些其他特定的容器类,这些容器类应支持以下操作empty 判空操作back 获取尾部元素操作push_back 尾部插入元素操作pop_back 尾部删除元素操作。

2025-01-24 16:42:11 1109

原创 C++ 复习总结记录九

List 相关文档1、List 在任意位置进行插入和删除的序列式容器 O(1) ,且该容器可前后双向迭代2、List 底层是带头双向循环链表,每个元素存储在互不相关的独立节点中,通过指针指向其前一个元素和后一个元素3、List 与 Forward_List 相似,主要不同在于 Forward_List 是单链表,只能正向迭代更简单高效4、与其他的序列式容器相比 ( array,vector,deque ),List 通常在任意位置进行插入、移除元素的执行效率更好。

2025-01-24 16:40:33 1330

原创 C++ 复习总结记录八

相关文档介绍1、vector 是表示可变大小数组的序列容器,它的大小可以动态改变,且大小会被容器自动处理2、像数组一样,vector 也采用的连续存储空间来存储元素。可以使用下标对 vector 元素进行高效访问3、与其它动态序列容器相比(deque,list and forward_list), vector 在访问元素时更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低(constructor)构造函数声明 接口说明vector();无参构造。

2025-01-21 10:03:11 928

原创 C++ 复习总结记录七

1、标准库中的 string 类2、string 类的模拟实现3、写时拷贝。

2025-01-21 08:09:14 805

原创 C++ 复习总结记录六

STL ( standard template libaray - 标准模板库 ),是 C++ 标准库的重要组成部分,是一个包罗数据结构与算法的软件库STL 版本【原始版本】Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费,唯一条件是也需要向原始版本一样做开源使用。HP 版本 – 所有 STL 实现版本的起源。

2025-01-08 23:19:07 1025

原创 C++ 复习总结记录五

int main()// new/delete 和 malloc/free 最大区别是 new/delete对于[自定义类型]除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎一样// Cfree(p3);delete p4;free(p5);return 0;

2025-01-08 23:17:49 959

原创 C++ 复习总结记录四

1、构造函数其它要点2、static 成员3、友元4、内部类5、匿名对象6、拷贝对象时编译器的优化。

2025-01-07 19:03:54 963

原创 C++ 复习总结记录三

1、类的六个默认成员函数2、构造函数3、析构函数4、拷贝构造函数5、赋值运算符重载6、const 成员函数7、取地址及 const 取地址操作符重载。

2025-01-07 19:02:57 818

原创 C++ 复习总结记录二

/ 类体:由成员函数和成员变量组成// 注意分号class 是定义类的关键字,ClassName 是类名,{} 中是类主体,注意类定义结束时,后面分号不能省略类体中内容称为类成员:类中变量称为类的属性或成员变量;

2025-01-04 15:08:11 695

原创 C++ 复习总结记录一

C 语言是结构和模块化的语言,适合处理较小规模的程序。对于复杂问题,需要高度抽象和建模时,C 则不合适。为了解决问题 20 世纪 80 年代, 计算机界提出 OOP ( object oriented programming 面向对象) 思想。1982 年 Bjarne Stroustrup 在 C 基础上引入并扩充了面向对象概念,为表达该语言与 C 渊源关系,命名为 C++

2025-01-04 15:07:10 943

原创 C 实现植物大战僵尸(四)

音频稍卡顿问题,用了 SFML 三方库已优化解决安装资源下载 https://www.sfml-dev.org/download/sfml/2.6.2/C 实现植物大战僵尸,完结撒花(还有个音频稍卡顿的性能问题,待有空优化解决)。目前基本的功能模块已经搭建好了,感兴趣的友友可自行尝试编写后续游戏内容因为 C 站不能上传动图,所以游戏实际效果可看后续文章更新,插一条试玩视频(https://live.youkuaiyun.com/v/441805)

2025-01-01 00:08:29 1520

原创 C 实现植物大战僵尸(三)

这里的设计思路和原 UP 主思路差异比较大,罗列如下原作中只要僵尸在出现在某条道路上,且存在豌豆射手,豌豆射手就会发射子弹,(这里是网页在线版的链接可以看到正常情况下,同一豌豆射手只有上次发射的子弹爆炸后才会发射下一颗(也就是豌豆射击是有时间间隔的)如果按照原 UP 主思路设计一个子弹类在更新游戏数据(updateGame) 地方创建子弹和更新子弹数据在 gameInit 中加载图片在 updateWindow 中渲染子弹接下来实现和函数。

2025-01-01 00:05:52 2376 2

原创 C 实现植物大战僵尸(二)

C 实现植物大战僵尸

2024-12-28 19:02:10 4101 2

原创 C 实现植物大战僵尸(一)

实现完成后的游戏试玩视频(https://live.youkuaiyun.com/v/441805)对应资源链接,以下内容为个人实现版,与原 UP 主项目代码内容有出入,提高了些可读和简洁性。

2024-12-26 20:22:35 760

原创 【Win11】安装 VMware17 和 Ubuntu

15 版本和 Win11 家庭版间的兼容应该有 BUG,请直接跳至【VMware 17】

2024-12-26 20:19:53 1149

原创 C 进阶 — 程序环境和预处理

_FILE__ //编译的源文件名__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循 ANSI C, 其值为 1,否则未定义预定义符号是语言内置的,如下例//语法:#define reg register //为 register 关键字, 创建一个简短的名字;) //用更形象的符号来替换一种实现case //写 case 语句时自动把 break 补上。

2024-12-25 23:05:56 1166

原创 C 进阶 — 文件操作

例 先前通讯录程序,数据存放在内存中,当程序退出时,通讯录中的数据自然就不存在了。如何把信息记录下来?一般数据持久化的方法有,数据存放在磁盘文件、存放到数据库等方式。使用文件将数据直接存放在电脑的硬盘上磁盘上的文件即是文件但程序设计中的文件一般指两种:程序文件、数据文件(从文件功能角度分类)程序文件包括源程序文件( 后缀为.c ),目标文件( windows 环境后缀为 .obj ),可执行程序( windows 环境后缀为 .exe )数据文件。

2024-12-25 23:04:29 680

原创 C 进阶 — 动态内存管理

动态内存函数常见动态内存错误经典练习柔性数组

2024-12-16 17:01:58 995

原创 C 进阶 — 自定义类型:结构体,枚举,联合

int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体),比如//联合类型的声明union Unchar c;int i;//联合变量的定义。

2024-12-16 10:30:11 1096

原创 C 进阶 — 字符函数和字符串函数 ( 二 )

书接上回,C 进阶 — 字符函数和字符串函数

2024-12-13 13:16:46 1013

原创 C 进阶 — 字符函数和字符串函数 ( 一 )

字符串以 \0 作为结束标志,strlen 函数返回在字符串中 \0 前面出现的字符个数(不包含 \0 )参数指向的字符串必须以 \0 结束注意函数的返回值为 size_t,是无符号的//示例演示, 下面的代码有什么问题int main()//相当于 (size_t) 3 - (size_t) 6//运算的返回值肯定大于 0elsereturn 0;//首先 CPU 没有减法操作,需要把减法转为加法运算, 3 - 6 转为加法运算. 那么 -6 对应的无符号数是。

2024-12-13 13:14:01 1087

原创 C 进阶 — 指针的使用

数组指针是指针,即指向数组的指针// p1, p2 分别是什么//指针数组, 表示十个元素的整型指针数组//数组指针, 表示指向十个整型元素数组的指针//[] 优先级要高于 * 号, 加上 () 保证结合律。

2024-12-11 00:22:17 1362

原创 C 进阶 — 数据在内存中的存储

基本内置类型char //字符数据类型 1short //短整型 2int //整形 4long //长整型 4long long //更长的整形 8float //单精度浮点数 4double //双精度浮点数 8// 规定C 语言没有字符串类型,字符串类型是用字符数组实现的类型:决定了开辟内存空间的大小和如何描述该块内存空间。

2024-12-06 13:56:49 1006

原创 GIT 必知必会操作总结三

分支是 GIT 中非常重要的功能,它是代码库中不同的版本,可以独立存在并且有自己的提交记录分支使用场景 :分支适合团队协作的开发管理,多个开发可以在各自的分支进行开发工作,最后再合并到主线代码库中。也可以在一个分支上进行新功能的开发或者建立一个问题修复分支来处理一些 BUG 和缺陷。这样主线代码库就可以处于一个稳定的随时可用的状态,而不会影响到其它功能的开发和测试使用 GUI 查看仓库提交情况使用 git checkout 命令切换分支时的一些问题。

2024-12-05 04:00:46 788

原创 GIT 必知必会操作总结二

搜狗输入的装扮关闭,高级最下面的三个选项关闭。

2024-12-04 19:55:28 1023

原创 GIT 必知必会操作总结一

GIT 是一个开源的分布式版本管理系统,是 Linux 之父 Torvalds 为了帮助管理Linux 内核开发而开发的一个版本控制软件它使用一个特殊的叫做仓库的数据库来记录文件的变化,仓库中每个文件都有一个完整的版本历史记录,可以看到谁在什么时间修改了哪些文件的哪些内容,在需要的时候也可以将文件恢复到之前的某一个版本如果没有版本控制系统,那么就只能通过最原始的方式来管理文件,比如将文件按日期备份出多个副本而当很多项目成员同时在修改同一个项目时,就需要手工来合并两个人的修改内容。

2024-12-04 14:24:53 716

原创 C 语言复习总结记录八

bug 计算机程序错误调试(英语:Debugging / Debug),又称除错,是发现和减少计算机程序错误的一个过程Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序调试通常指在 Debug 版本环境中,找代码中潜伏问题的一个过程Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

2024-12-03 03:51:04 729

原创 C 语言复习总结记录七

int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。

2024-12-02 21:07:27 295

原创 C 语言复习总结记录六

指针变量,用来存放地址的变量(

2024-11-25 23:32:28 468

原创 C 语言复习总结记录五

对一个数的二进制按位取反- 负值+ 正值!逻辑反操作& 取地址sizeof 操作数的类型长度(以字节为单位)-- 前置、后置 --++ 前置、后置 ++* 间接访问操作符(解引用操作符)(类型) 强制类型转换int main()2);//00);//1a = -a;p = &a;//函数调用//单目操作符//不支持return 0;sizeof 求变量(类型)所占空间的大小。

2024-11-25 18:00:43 627

原创 C 语言复习总结记录四

数组是一组相同类型元素的集合数组的创建方式C99 标准前数组的创建,[] 中必须要一个常量表达式才可以,不能使用变量。在C99 标准支持了变长数组的概念,数组的大小可以使用变量指定,如下。

2024-11-24 21:05:04 698

原创 C 语言复习总结记录三

自定义函数和库函数一样,有函数名,返回值类型和函数参数,但由程序员自己设计编写函数,找出两个整数中的最大值;编写函数,交换两个整形变量的内容x : y;//原理, 两次异或的结果等于原值return 0;函数声明:仅提供函数名,参数和返回类型,不提供参数体,一般放在头文件中函数定义:指函数的具体实现,交待函数的功能实现//函数声明int Add(int x, int y) //函数实现return x+y;递归 :程序调用自身的编程技巧称为递归(recursion)

2024-11-22 10:44:31 1281

原创 C 语言复习总结记录二

控制语句 控制程序的执行流程,实现程序的各种结构方式C 语言支持三种结构 :顺序结构、选择结构、循环结构,由特定的语句定义符组成C语言有九种控制语句,可分成以下三类:条件判断语句也叫分支语句:if 语句、switch 语句循环执行语句:do while 语句、while 语句、for 语句转向语句:break 语句、goto 语句、continue 语句、return 语句。

2024-11-20 18:35:51 922

原创 B 站计算机知识记录

缓存 SRAM 和内存 DRAM 都属于 RAM 缓存为什么比内存要快?SRAM 数据的读写操作只需要控制电路的通断状态,而 DRAM 数据的读写操作需要通过电容的充放电过程,因此速度较慢。DRAM 存储单元是基于电容,需要定期刷新以防止数据丢失,这会导致额外的延迟。SRAM 通常能够支持更高的并行访问能力,因为它的存储单元相对独立,可以同时进行多个访问操作。而 DRAM 的存储单元之间存在耦合效应,因此难以实现高效的并行访问。

2024-11-19 17:51:59 479

原创 毛选阅读第一卷

那动摇不定的中产阶级,其右翼可能是我们的敌人,其左翼可能是我们的朋友——但我们要时常提防他们,不要让他们扰乱了我们的阵线。开篇教员提出了该文讨论的核心,即在革命过程中,谁是我们的朋友?并提出中国过去的革命斗争成效甚少的基本原因是,未能团结真正的朋友,以攻击真正的敌人。综上,一切勾结帝国主义的军阀、官僚、买办阶级、大地主阶级以及附属于他们的一部分反动知识界,是我们的敌人。在该文中教员详尽的分析了,当前中国各阶级所持的经济基础,所处的政治立场,及对于革命斗争的态度。工业无产阶级是我们革命的领导力量。

2024-11-19 17:29:08 310

原创 C 语言复习总结记录

C 语言是一门通用计算机编程语言,广泛应用于底层开发。设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。是一门面向过程的计算机编程语言,与 C++,Java 等面向对象的编程语言有所不同。二十世纪八十年代,为避免各开发厂商用的 C 语言语法产生差异,由美国国家标准局为 C 语言制定了一套完整的美国国家标准语法,称为 ANSI C,作为 C 语言最初的标准。

2024-11-19 17:21:29 1041

原创 数据库浅谈之共识算法

分布式数据库 共识算法

2023-02-25 16:25:22 2005 6

原创 数据库浅谈之 LLVM

LLVM

2023-02-24 10:01:49 2108 7

原创 数据库浅谈之 Bloom Filter

Bloom Filter

2023-02-24 09:59:54 1125 2

原创 数据库浅谈之 DuckDB AGG 底层实现

DuckDB AGG 聚合算子底层实现

2023-02-24 09:56:53 1884 2

空空如也

空空如也

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

TA关注的人

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