Vanadium的小屋御用公告板
五一计划
有谁五一要卑微留校阴暗爬行呐? 哦, 是我啊
那就写一份计划书吧
整理笔记: 计算机系统I 的相关笔记, 参考 slides, 学长的资料
https://note.hobbitqia.cc/ICS/
https://note.tonycrane.cc/cs/system/
https://note.isshikih.top/cour_note/D2QD_DigitalDesign/
填坑: 继续学习 C++ 到头秃, 填补游戏开发日经记录贴
肝 DDL: 系统 lab4 你把大家都害亖re!
史纲头脑风暴
最重要的!!! 摸鱼
2024/04/27 by Vanadium
暂时关闭评论系统
由于博客代码重构, 评论系统暂时关闭, 如有联系需要请参考 关于
2024/03/25 by Vanadium
博客图片迁移
由于之前拿 Github 做图床, 访问时的速度受到极大限制, 现准备逐渐迁移图片到 ImageOss
2024/03/21 by Vanadium
小屋评论系统测试版上线:D
评论系统基于Waline, 部署在leancloud(国际版), 有什么问题 ...
Se:从零开始的C++游戏开发 | 日经记录贴
学习了那么那么多(其实也就一点点)的 C++ 和 OOP 的思想, 不来点有意思的实战有什么意思呢? 正巧最近在B站冲浪的时候刷到一个宝藏视频合集, 介绍了从零开始的C++游戏开发, 于是跃跃欲试…
前情提要: Re:从零开始的C++游戏开发 | 日经记录贴
视频链接: 从零开始的C++游戏开发
代码仓库: https://github.com/Z-Vanadium/Cpp-game-development
像素素材: https://anokolisa.itch.io/sidescroller-pixelart-sprites-asset-pack-forest-16x16
Day 8
在Re:从零开始的C++游戏开发中, 我们将所有代码都一股脑放在了main.cpp中, 即使通过封装和多态等方法加以组织, 依然在多次迭代后变成了史山. 所以, 我们首先要做的事情就是: 将这些内容分而治之
场景设计
为了将游戏内容分而治之, 我们需要将不同阶段的代码封装在不同的类中, 再把不同的类分布在不同的文件中, 以达到井然有序的文件组织结构.
上面所说的"不同阶段" ...
C++ | 回调函数
定义
回调函数(callback function) 被定义为"作为参数传递的函数", 或者用更加接地气的方式描述:
将函数 A 作为参数传递给函数 B, B 在执行的某一刻调用 A, 此时称 A 为回调函数
作用
回调提供了一种灵活的方式来扩展或自定义函数的行为, 需要在某些特定的时刻执行特定的动作, 但这些动作可能因情境而异. 通过使用回调, 可以允许其他代码决定何时以及如何响应
简单来说, 回调函数保证了调用者对被调用者的控制权, 是一种灵活的函数调用方式
应用场景
事件驱动
以 GUI 为例, 假如我们需要实现诸如"用户用鼠标点击按钮, 程序作出响应"的功能, "响应"就可以作为回调函数传递给按钮类
计时器
考虑需求"每 1min 执行函数一次", 我们可以先定义计时器类, 再将函数作为回调函数传递给计时器的实例化, 避免了我们只能通过继承的方式创建大量无用的计时器类的子类
错误处理
实现
作为一种机制, 回调函数在很多语言中都有实现方法
C
在 C 中一般使用函数指针实现回调函数, 考 ...
Re:从零开始的C++游戏开发 | 日经记录贴
学习了那么那么多(其实也就一点点)的 C++ 和 OOP 的思想, 不来点有意思的实战有什么意思呢? 正巧最近在B站冲浪的时候刷到一个宝藏视频合集, 介绍了从零开始的C++游戏开发, 于是跃跃欲试…
视频链接: 从零开始的C++游戏开发
代码仓库: https://github.com/Z-Vanadium/Cpp-game-development
版本发布:
V1.0: https://vanadium.lanzoum.com/iQQVy1w15k8d 密码:6gji
Day 1
环境搭建
VSCode + OpenGL 太难配置了, 浪费一个下午, 最终决定用懒人 IDE – VS, VS 赛高!!!
IDE: Visual Studio Community 2022
图形库: EasyX
位图编辑: Picxel Studio
VS
安装时仅需勾选"使用C++的桌面开发"
EasyX
安装最新版本, 打开后为自己将要使用的 VS C++ 安装 EasyX
环境测试
打开 VS, 创建空 C++ 项目命名为 demo, 新建 main.cpp, ...
FDS | 常见排序算法实现 C 语言版
无聊写了下 C 语言实现的各种排序算法
预处理
由于 C 语言没有多态, 只考虑对某个类型排序, 以 int 类型为例子
#include<stdio.h>#include<stdlib.h>#define ElemType int
辅助函数
定义谓词函数和交换函数
// 表示第一个参数大于第二个参数int greater(const ElemType* x, const ElemType* y){ return *x > *y;}// 表示第一个参数小于第二个参数int less(const ElemType* x, const ElemType* y){ return greater(y, x);}void swap(ElemType* x, ElemType* y){ ElemType tmp; tmp = *x, *x = *y, *y = tmp;}
函数接口
统一接口格式如下
void sort(ElemType* base, size_t n, int (*p ...
C++ | Formatting & Print Library
本文仍为草稿
原文地址: https://hackingcpp.com/cpp/libs/fmt.html
前言
Formatting & Print 库(fmt库)是一个可以高效且安全地将 C 标准输入输出库转化为 C++ 输入输出流的现代 C++ 库(C++20 出现, C++23 加入标准库)
相比之前废拉不堪的输入输出函数, Formatting & Print 库有如下特性:
更快
更便捷
类型安全
由于目前大多数编译器并没有实现对 C++23 中 print 库的支持, 我们依然使用 C++20 的 fmt 库演示格式化与输出操作
PTA 的 C++ 编译器为 gcc 11.4.0, 只支持到 C++17, 所以在 PTA 平台上用不了这么好用的东西
前期准备
由于 fmt 库不存在于 C++20 的标准库中, 所以我们要手动引入
VSCode with mingw
首先, 删除.vscode配置文件, 在 IDE 界面按下 F5 查看 VSCode 使用的编译器的路径
在任意空文件夹下运行下面的 git 命令获取 fmt 库
g ...
C++ | 函数对象 & 匿名函数
本文仍为草稿
在 C++ | STL III 的最后, 我们曾简单地谈到了函数对象和匿名函数
函数对象
众所周知, C++ 出现的一个主要目的就是实现面向对象程序设计(Object-Oriented Program), 在先前的三篇有关 STL 的文章中我们详细讨论了什么是对象, 实际上, 早在 C++98 时代, C++ 中的对象的概念就不止限定在类或结构体上面, 函数也可以是 “对象”
C++98 提供了有关函数对象的库 <functional>, 引入这个库
#include<functional>
这个库提供了很多基础的预定义函数对象, 帮助库 <algorithm> 中算法的实现, 包括了内置函数对象, 谓词等
内置函数对象
下面是一个实例, 我们用类型 int 实例化了加减乘除和取模五种运算函数, 调用这些运算函数对象, 和直接使用运算符并没有差别, 但是这种写法更加符合 “泛型” 的概念–即我们可以对不同的对象使用一样的函数, 达到各自的效果
int main(){ auto _plus = std::plu ...
C++ | 继承
这是 C++ 网课学习笔记
继承与 hiding
回顾之前给出的代码示例
class Shape { // 基类 Shapeprivate: void prepare() { /* 做一些准备(例如准备画笔)*/ } void finalize() { /* 做一些后续处理(例如重置画笔)*/ }public: Point center; // 共有的成员变量 void draw() { // 共有的成员函数 prepare(); do_draw(); finalize(); } virtual void do_draw() = 0; // 要求所有派生类都实现 do_draw()};class Circle : public Shape { // Circle 继承 Shapepublic: int radius; // 独有的成员变量 void do_draw( ...
信息安全原理与数学基础
基本信息
授课教师:zbs
信息安全原理(不做考试要求)
数理逻辑
集合论
图论
代数系统
概率论
数据结构基础
Basic Infomation
Teachers: yzq
See Also: Foreverhyx’s FDS notes
Introduction
Algorithm Analysis
Linear Table
Tree
Heap
Disjoint Set
Graph - Topologic Sort
Mid Term Record