这里可能没有你想看的...
09
23
Linux 常用命令 の Note Linux 常用命令 の Note
记录常用命令及对应的常用 option,方便查。 切换用户当前工作目录 - cd 全称为 change directory ### example: ## 绝对路径 cd /usr/bin ## 相对路径 cd ./foo/bar/di
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)\) 的时间复杂度下实现单点修改与区间查询两个操作。 参考自 OI wiki。 无特殊说明,本文所有数组下标均
2023-09-05
08
20
TinyKV-Project4 Transaction TinyKV-Project4 Transaction
本 Project 需要我们实现基于 MVCC 的事务模块。 思路 Part A Mvcc Txn 需要实现的代码在文件夹 kv/transaction/mvcc 下。 这一 part 需要我们实现支持 MVCC(多版本并发控制, Mul
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 => 领导选举 Log
2023-08-14
13
TinyKV-Project1 StandaloneKV TinyKV-Project1 StandaloneKV
本 Project 需要我们基于 badger 实现一个独立存储引擎。 思路 Part A Implement standalone storage engine 需要实现的代码在 kv/storage/standalone_storag
2023-08-13
07
01
训练安排 训练安排
三分化,双循环。 周一 & 周四 胸: 杠铃平板卧推 4×8 杠铃上斜卧推 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
06
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 模板? 现在有一个需求,就是写一个简单的 s
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 大区域,分别为代码区、常量存储区、全局/静态存储区、堆区、栈区,每个区域存放不同类型的数据: 代码区(.text
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
2 / 3