- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 操作系统任务调度 rust+汇编实现
当前我们内存使用分页, 一个page有4k。长度0x1000。以0x1000开始的这个page为例子。这个区域作为栈来使用,由于栈是方向增长,所以,栈顶为0x2000, 0x1000为栈底。
2023-04-11 15:38:47
356
原创 Spanner学习笔记
多处读取,解决读旧数据的问题可能要操作不同的paxos组,需要分布式事务Spanner比较有意思的点主要是:快照隔离机制, 该机制可以让只读型事务不经过2PCTrueTime机制,在多地不同机器中,时钟不太可能完全同步,利用该机制就可以解决时钟不同步带来的问题。
2022-10-18 11:57:07
227
原创 手把手写线段树
手把手写线段树题目分析这道题, 无非就是一段时间可用或者是不可用, 很理所当然的, 我们就可以联想到使用线段树来解决这题而线段树所具有的属性了就应该是, 这一段时间是否是可用的, 我们可以以此定义一个bool类型的成员bool available = true;写一下完整的树的结点:class TreeNode{public: // 树的成员 TreeNode* left; TreeNode* right; // 线段树特殊的 bool a
2021-11-03 13:28:09
139
原创 三步走解决递归问题
三步走解决递归问题递归三步走严格按照这三步, 轻松解决递归问题1. 给函数下定义很多时候困扰我们的?在写递归函数前, 我们先要给要写的这个递归函数下一个定义.一旦下完了这个定义, 我们就认为函数具有了这个功能(尽管这个函数我们并未书写)然后在书写代码的时候就帮这个被我们下过定义的函数当成具有这个功能的函数来写注意: 不要过分的关注函数本身, 下完定义, 函数就具有这个功能, 不需要纠结如何实现就以二叉树的前序遍历为例子, 我们给这个函数下一个定义, 就是前序遍历这棵二叉树class Tr
2021-11-02 23:54:54
533
原创 写给仅有C语言基础的std::list教程
写给仅有C语言基础的std::list教程用std::list代替手写链表一. 说明看标题,写给无C++基础的读者很多地方,我也知道该用lambda表达式,该用for_each,但是毕竟是写给无C++基础的,这时候谈什么匿名函数为时过早作者本身是小白,很多表述也只是为了无C++基础的好理解,请大佬请勿喷链表写起来麻烦(当然如果还不熟练建议多练习)其实在C++的STL中有个容器叫list,本质上是一个双向链表因此可以使用使用list完成链表的题目不造轮子,省时省力啊!二. 引子1
2021-03-18 00:04:01
500
原创 C++中的 求模运算 和 求余运算
盘点C++中的求模运算和求余运算引入先看看几个问题: // 下面三个表达式的结果分别是多少? 3 / 1 3 / -1 -3 / 1// 其中u的值是多少?unsigned u = -1;要回答这几个问题,就必须了解C++中的求模运算和求余运算求模运算和求余运算这两个概念,大多数人乍一听都觉得是差不多的事实上,求模运算和求余运算 实际上还是有一定的区别的求余运算和求模运算求余运算和求模运算概念很相似,容易混淆不同点:求余运算商向0取整如-5对3求余:(-5)
2021-01-27 22:59:09
2726
原创 C++ Primer 2.2.4 名字作用域
名字作用域本节的内容非常简单就是简单的介绍了一下作用域的内容可以简要概括:一个{}表示一个作用域作用域可以嵌套内层作用域可以重新定义外层作用域的名字但是不建议这么做// 可以用作用域操作符访问外层作用域#include <iostream>using namespace std; int i = 100;int main(){ { int i = 200; // 输出结果是200 cout <<
2021-01-23 22:59:02
93
原创 C++ Primer 2.2.3 标识符
2.2.3 标识符本节就简单介绍了标识符的命名规范.给出几个强制规定:标识符由数字 字母 下划线组成标识符由字母或者下划线开头用户自定义的标识符不能出现连续两个下划线用户自定义的标识符不能一下划线连接大写字母开头定义在函数体之外的标识符不能用下划线开头ps:好像各个编译器对这上面几个并没有限制然后又给出了一些约定俗成的规范变量名一半用小写 如index,而不是INDEX用户自定义的类名一般用大写 如Sales_item多个单词一般需要采用驼峰命名法和下划线命名法...
2021-01-21 17:57:38
152
原创 C++ Primer 2.2.1-2.2.2 变量的定义 变量的声明和的定义的关系
2.2变量2.2.1 变量定义变量初始化变量初始化以后立即可被使用// a在初始化后就可以被使用了int a = 3 , b = a + 1;有多种初始化方式老标准常见的初始化:int a = 0;int a(0);cpp11全面使用列表初始化int a = {0};int a{0};列表初始化的好处是如果存在进度损失的风险,编译器将会报错// 需要搜索转换,将报错double d = 3.14;float a = {d};默认初始化构造函数可以规定
2021-01-16 23:11:54
109
原创 C++ Primer 2.1.3 字面值常量 笔记
字面值常量整型和浮点型整型整型可以写成十进制 八进制 十六进制十进制:正常的数字int.long.long long中最能放得下的类型整型默认是signed八进制:027 用0开头可以是int.unsigned.long.unsigned long.longlong.unsigned long long 中能放得下最小的类型十六进制:0x1A 用0x开头可以是int.unsigned.long.unsigned long.longlong.unsigned long lon
2021-01-11 23:58:58
157
原创 图的概念
图的概念图 (Graph)可以表示为 G (V,E)其中 V: Vertex E: Edge边有无方向无向图 无边向顶点连接没有方向可以用无序偶 (Vi,Vj) 表示有向图 有向边顶点连接有方向有向边也可以用 弧(Arc)表示可以用有序偶 <Vi,Vj> 表示简单图没有顶点自己指向自己没有重复的同一条边完全图无向完全图每两个顶点都有边连接数量 n*(n-1)/2有向完全图每两个顶点都有方向相反的两条弧数量 n*(n-1)
2020-12-25 22:05:45
165
原创 C++ Primer 第2章 变量和基本类型 复习笔记
第2章 变量和基本类型2.1 基本内置类型2.1.1 算数类型这一小节介绍了C++中基本算数类型2.1.2 类型转换变量赋值大多都能转换成相应类型下面是几个比较坑的点:类型转换向 0 取整 (C++11)将浮点型赋值给int型时,int型是直接舍去小数部分// 最终i=1double d=1.5; int i=d; 当d是负数时// 最终i=-1double d=-1.5; int i=d; int相除也是向0取整当结果是正数// 5 / 3
2020-12-18 22:50:43
317
1
原创 小白马的C++ Primer 复习/学习笔记
小白马的C++ Primer 复习/学习笔记写笔记的原因现在时间允许,打算认认真真的好好学习Coding之前primer啃过半本,再翻开,发现好多东西已经忘了写给我自己,帮助自己更好理解顺便学习一下markdown笔记目录这是复习部分第一章 开始没啥特别的 没什么好写第二章 变量和基本类型TODO这是学习部分...
2020-12-16 23:15:27
114
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人