这里可能没有你想看的...
【数据删除】
09
23
Linux 常用命令 の Note Linux 常用命令 の Note
记录常用命令及对应的常用 option,方便查。 #切换用户当前工作目录 - cd 全称为 change directory ### example: ## 绝对路径 cd /usr/bin ## 相对路径 cd ./foo/bar/d
2023-09-23
06
最长递增子序列 の O(nlogn) 最长递增子序列 の O(nlogn)
最长递增子序列(Longest Increasing Subsequence, LIS) 是非常经典的一个算法问题。 在计算机科学中,最长递增子序列(longest increasing subsequence)问题是指,在一个给定的数
2023-09-06
05
树状数组 树状数组
树状数组,也称作二叉索引树(Binary Indexed Tree)或 Fenwick 树。 它可以在 O(log⁡n)O(\log n)O(logn) 的时间复杂度下实现单点修改与区间查询两个操作。 参考自 OI wiki。 无特殊说
2023-09-05
08
20
TinyKV Project4 Transaction TinyKV Project4 Transaction
本 Project 需要我们实现基于 MVCC 的事务模块。 #思路 #Part A Mvcc Txn 需要实现的代码在文件夹 kv/transaction/mvcc 下。 这一 part 需要我们实现支持 MVCC(多版本并发控制, M
2023-08-20
20
TinyKV Project3 Multi-Raft TinyKV Project3 Multi-Raft
本 Project 需要我们实现多个存储节点之间的管理。 #思路 #Part A Leadership/Membership Change in Raft 需要修改的代码位于 raft/raft.go。 在 3A 中我们仅需修改 Raft
2023-08-20
14
TinyKV Project2 RaftKV TinyKV Project2 RaftKV
本 Project 需要我们实现基础 Raft 算法。 #思路 #Part A Raft 需要实现的代码在整个 raft 文件夹下。 这一 part 我们要实现三个模块,分别为 Leader election => 领导选举
2023-08-14
13
TinyKV Project1 StandaloneKV TinyKV Project1 StandaloneKV
本 Project 需要我们基于 badger 实现一个独立存储引擎。 #思路 #Part A Implement standalone storage engine 需要实现的代码在 kv/storage/standalone_stor
2023-08-13
07
01
训练安排 训练安排
三分化,双循环。 #周一 & 周四 胸: 杠铃平板卧推 4×8 杠铃上斜卧推 4×8 蝴蝶机夹胸 4×8 三头: 绳索下拉 4×8 #周二 & 周五 背: 高位下拉 4×8 坐姿划船 4×8
2023-07-01
03
21
CS144 Lab Note CS144 Lab Note
CS144 lab 记录过程。 #环境配置 本课程所有 lab 均需要在 Linux 环境下运行,课程组提供了 4 种运行方式,直接照着 Instructions 来就好了。我这里因为实验室自带 Ubuntu 工作站,所以用了第三种方式,
2023-03-21
02
C++ の 可变说明符(Mutable) C++ の 可变说明符(Mutable)
mutable 意为可变的,可以在非引用非常量非静态数据成员的声明中出现,允许被常量类对象修改。 #类中的 mutable 先聊聊一个有趣的话题,关于 const 类成员函数有两大观点流派: bitwise constness:主张成
2023-03-02
01
Effective C++ の Note Effective C++ の Note
久仰本书大名,花了若干时间入门 C++ 后,终于可以拜读一下这部经典作品。 当 C++ 律师! #1. 视 C++ 为一个语言联邦 C++ 高效编程守则视情况而变化,取决于使用 C++ 的哪一部分。 C++ = C + Object
2023-03-01
01
C++ の 异常处理(Exception) C++ の 异常处理(Exception)
异常,在操作系统中指的是指令内部出现的"内中断",如除数为零,地址越界等。这些情况在程序中也时有发生,C++ 为了应对偶发的程序异常事件,引入了异常处理机制。其基于三个关键字:try,throw 与 catch。 #异常处理流程 一个完整
2023-03-01
02
28
C++ の 泛型编程(Generics) C++ の 泛型编程(Generics)
泛型编程是程序设计语言的一种风格或范式,允许程序员在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。在 C++ 里,这是与 OOP 并列的一大分支,通过模板来实现。 #Why 模板? 现在有一个需求,就是写一个简单的
2023-02-28
27
C++ の 类型转换(Type&Cast) C++ の 类型转换(Type&Cast)
当表达式期望为 T 类型,而我们只能产生 S 类型的表达式时,就需要利用类型转换功能来满足需求。 传统的转换总结来说分为隐式与显式两种。 #隐式转换 凡是在语境中使用了某种表达式类型 T1,但语境不接受该类型,而接受另一类型 T2 的时候
2023-02-27
19
C++ の 内存分配(Memory Allocation) C++ の 内存分配(Memory Allocation)
众所周知,C++ 是一门与内存紧密相关的语言,本文就来聊聊 C++ 眼中的内存分配。 #内存布局 C++ 程序的内存分为 5 大区域,分别为代码区、常量存储区、全局/静态存储区、堆区、栈区,每个区域存放不同类型的数据: 代码区(.te
2023-02-19
14
C++ の 面向对象(OOP) C++ の 面向对象(OOP)
面向对象程序设计(Object-oriented programming, OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。 #封装 #装 装是指把数据与操作这些数据的函数绑定到一块,抽象成一个类。 C++11 引
2023-02-14
13
C++ の 内联函数(Inline) C++ の 内联函数(Inline)
inline 只能用于修饰函数,能够解决一些频繁调用的小函数大量消耗栈内存的问题,是一种提高程序运行效率的手段。 #inline 基本 众所周知,函数的调用需要消耗栈内存,每次调用一个函数,就会在栈中分配一片函数所需内存(如参数压栈),但
2023-02-13
13
C++ の 静态修饰符(Static) C++ の 静态修饰符(Static)
static 是 C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。 #static 普通变量 static 修饰的普通变量存储在静态区,其生命周期延长至整个程序结束。只有第一次会执行初始化,若无初始值,则用默认值进行初始化。
2023-02-13
2 / 3