Cpp_Standard_Templete_Library
[toc] vcector Store in the heap. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <iostream>#include <string>#include <vector>struct Vertex{public: float x, y, z; Vertex(float x, float y, float z) :x(x), y(y), z(z) { } Vertex(const Vertex& vertex) :x(vertex.x), y(vertex.y), z(vertex.z) { std::cout << "Copied!" << std::endl; }};std::ostream&...
Cpp
[toc] C++Solution and Project Solution is a vessel containing projects, and the code is the actual organizational unit of the project. Solution is used to organize and manage multiple projects, while a project is used for real operations and construction. hello_world12345678910111213141516171819#include <iostream> //Pre-process#if 1 //Pre-process can be an annotation// The "static" keyword means that the function is only declared within this translation unit.static void...
CppClass
[toc] class The fundamental ideas behind classes are data abstraction and encapsulation. The only difference between classes and structs is the default visibility. Use the prefix m_ to denote a private variable. class can reduces duplication e.g. 1234567891011121314151617181920212223242526272829303132#include <iostream>#define LOG(x) std::cout << x << std::endlclass Player{public: int x, y; int speed; void Move(int xa, int ya) //Functions in a class are called...
Git
Git版本控制(Git) · the missing semester of your cs education (missing-semester-cn.github.io) 基本命令git init 创建一个git仓库 git status 查看文件状态 -s状态简览 git add 跟踪一个文件 把已跟踪的文件放入暂存区 合并时把有冲突的文件标记为已解决状态 git reset HEAD filename 取消暂存 git diff 比较工作目录中当前文件和暂存区域快照之间的差异。也就是修改之后还没有暂存起来的变化内容 git diff --staged git diff --cached 比对已暂存的文件与最后一次提交的文件的差异 .gitignore 忽略文件配置文件, git commit git commit -a git commit --amend 提交更新,-a表示把所有已经跟踪过的文件暂存起来一起提交,跳过使用暂存区。--amend表示重新提交。 git rm -f 强制删除。 git mv...
NJU_OS_0x1
NJU OS 2024 南京大学《操作系统:设计与实现》一些好词佳句 Life is short, you need Python! linux知识 echo $status 打印程序返回值 可以通过管道将输出传递给less命令查看输出,同时,可以通过2>&1 |将标准错误输出也输出到less 可以通过strace -f可以记录系统调用和子进程,甚至可以追踪他自己! QEMU, A fast and portable dynamic translator make -nB显示 Makefile 文件中指定的命令的执行情况 可以通过mount挂载文件 gcc参数-Wl,--verbose可以详细展示编译过程,-I指定头文字路径 vim - 打开一个新的 Vim 编辑器实例,并将其标准输入设置为来自终端的输入,使用管道符号可以很方便编辑程序的输出。 sed...
图论
图的存储搜索与图论 数据结构 空间 DFS stack O(n) BFS queue O(2^n) 最短路 DFS 采用stack 回溯——恢复状态 剪枝——提前回溯 遇到诸如放置、字典序等可使用深搜输出全部组合。 BFS 采用queue 边权都为1时,为最短路径 DP是特殊的最短路问题 acwing842 ——DFS 从0开始进行深搜(不从1开始是因为1也要进行排序)。 12345678910111213141516171819202122232425262728293031323334353637383940#include <iostream>using namespace std;const int N = 100;int n; //记录深度int path[N];int st[N];void dfs(int u){ if (u== n) { for (int i = 0 ;i < n; i ++) ...
51单片机学习0x2
0x2LED点阵屏 LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已 LED点阵屏与数码管一样,有共阴和共阳两种接法,不同的接法对应的电路结构不同 LED点阵屏需要进行逐行或逐列扫描,才能使所有LED同时显示 LED点阵屏分类 按颜色:单色、双色(可显示三种颜色)、全彩 按像素:8-8、16-16等 74HC595 74HC595是串行输入并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于IO口扩展。 相当于一把手枪,SER填入子弹,SERCLK控制子弹装填(移位),多余的子弹从QH'口溢出,RCLK清空弹夹。同时,还可以将多个74HC595串联,拓展IO口。 要注意J24模块GND端,用文字取模软件生成代码 ...
csapp第十章——系统级IO
系统级I/O输入与输出 (I/O) 是在主存和外部设备(例如磁盘驱动器、终端和网络)之间复制数据的过程。 UNIX I/O 所有的设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。 打开文件。一个应用程序通过要求内核打开相应的文件,来宣告它想要访问一个设备。内核返回一个小的非负整数,叫做描述符,它在后续对此文件的所有操作中标识这个文件。内核记录有关这个打开文件的所有信息。应用程序只需记住这个描述符。 Linux shell 创建的每个进程开始时都有三个打开的文件: 12345/* /usr/include/unisted.h */#define STDIN_FILENO 0 /* Standard input. */#define STDOUT_FILENO 1 /* Standard output. */#define STDERR_FILENO 2 /* Standard error output. ...
csapp第九章——虚拟内存
虚拟内存虚拟内存提供了三个重要的能力: 它将主存看成是 个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存 它为每个进程提供了一致的地址空间,从而简化了内存管理。 它保护了每个进程的地址空间不被其他进程破坏 物理和虚拟内存将虚拟地址转换为物理地址的任务叫做地址翻译 (address translation)。 地址翻译需要 CPU 硬件和操作系统之间的紧密合作 CPU 芯片上叫做内存管理单元(Memory Management Unit, MMU) 的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由操作系统管理。 地址空间地址空间 (address space) 个非负整数地址的有序集合: 一个地址空间的大小是由表示最大地址所需要的位数来描述的。 虚拟地址空间: 一个包含 N=2**n个地址的虚拟地址空间就叫做一个n位地址空间,现代系统通常支持 32 位或者 64 位虚拟地址空间。 物理地址空间:对应于系统中物理内存的M个字节。 虚拟内存作为缓存的工具VM...
stm32单片机0x1
stm32STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器 ARM内核 stm32F103C8T6采用Cortex-M3内核,发布于2004年10月。 片上资源/外设 英文缩写 名称 英文缩写 名称 NVIC 嵌套向量中断控制器 CAN CAN通信 SysTick 系统滴答定时器 USB USB通信 RCC 复位和时钟控制 RTC 实时时钟 GPIO 通用IO口 CRC CRC校验 AFIO 复用IO口 PWR 电源控制 EXTI 外部中断 BKP 备份寄存器 TIM 定时器 IWDG 独立看门狗 ADC 模数转换器 WWDG 窗口看门狗 DMA 直接内存访问 DAC 数模转换器 USART 同步/异步串口通信 SDIO SD卡接口 I2C I2C通信 FSMC 可变静态存储控制器 SPI SPI通信 USB...