笔记
reStructuredText
reStructuredText 规范
rst 写作指南
空白字符
空行
缩进
转义机制
引用名
文档结构
section
transition
body 元素
段落
无序列表
枚举列表
定义列表
字段列表
选项列表
原始字面量块
行块
块引用
文档测试块
表格
显式标记块
内联标记
斜体
粗体
内联字面量
数学公式
使用 Sphinx 生成 PDF
需求
环境配置
自定义 PDF 元素
测试开发
接口测试
接口测试流程
Get 请求
C++
C
Const
表达式短路
空指针
查找文件
_findfirst
_findnext
_findclose
示例:
目录操作
删除文件
可变参数 [#parm]
基础概念
变量的大小
枚举
枚举值的取值范围
强类型枚举
字面量
自定义字面量
内存和对象
对象模型
Lambda 表达式
Lambda 作为函数参数
列表初始化
auto
函数
指针
开关位
指针
sizeof
const
volatile
大小端
移位运算
内联函数
内存对齐
预编译指令
C++ 中一些奇怪的类型
引用
指针
类
函数
零成本抽象
类
构造函数
委托构造
继承构造
复制构造和移动构造
原地初始化和初始化列表
类的隐式类型转换
禁止生成函数
操作符重载
语法:
前缀运算符和后缀运算符
使用运算符进行自动类型转换
运算符重载在成员和非成员函数中的选择
比较运算符
成员函数
const 限定的成员函数
valatile 限定的成员函数
& 和 && 限定的成员函数
深拷贝和浅拷贝
引用计数和写时复制
继承
函数重写
函数覆盖
终止重写
虚函数
C++ 构造和析构的时机
公有继承
接口继承和实现继承
替换虚函数
继承和组合
指针分布
对象切片
二进制兼容
struct 和 class
delete this
模板
模板介绍
模板参数默认值
模板参数推导
模板的特化
模板匹配
隐式接口和编译期多态
条件判断和循环
可变长模板参数
函数返回值类型提取
奇异递归模板
完美转发
资源管理
决定函数的返回值
获取资源
验证资源的有效性
异常带来的资源泄露
使用引用管理对象声明周期
异常处理
函数异常块
异常规范
栈解退
异常中断
信号
信号类型
虚拟信号处理函数
触发信号
零成本异常并不是零成本
生命周期
字面量
左值、右值
左值
纯右值
将亡值
泛左值
右值
悬空引用
引用类型
左值、右值、将亡值
左值(lvalue)
纯右值
引用类型的分类
引用类型的初始化
引用类型的生命周期
移动语义
何时使用引用
指针和引用的区别
输入输出流
标准 IO 流
标准 IO 流的打开模式
标准 IO 流的状态
输入控制
输入输出格式控制
无格式输入函数
endl
智能指针
shared_ptr 和 make_shared
share_ptr 的注意事项
enable_shared_from_this
weak_ptr
对象池
类型转换
const_cast
reinterpret_cast
static_cast
dynamic_cast
标准转换
编译期
代码编译过程
位置独立代码
静态库、动态库和小库
静态库
动态库
Windows 下的动态库
导出函数和类
二进制构成
段错误
标准库
底层数据类型
迭代器
字符串
参见字符串处理方式
随机数
常用算法
常用算法
非修改序列操作
修改序列操作
划分
排序
二分法查找(用于已划分/已排序的序列)
合并(用于已排序的序列)
堆
最大/最小值
其他
自定义类型的迭代器
动机
STL 中的迭代器
自定义迭代器
自定义容器
测试
总结和思考
线程
线程间通信
线程对象
调用成员函数
线程所有权
线程 id 和原生句柄
async
条件竞争
线程互斥和线程同步
互斥量
lock_guard
条件变量
期望
Promise
锁存器
栅栏
CAS
TLS
内存模型与原子类型
原子变量
内存顺序
暂停线程和终止线程
并行算法库
执行策略
协程
管道
OpenMP
事务性内存
无锁编程
多线程最佳实践
线程安全的类
按序打印
交替打印FooBar
数据结构
线程安全栈
自旋锁
无锁栈
Range
概述
常见范式
Ragel
构造状态机
Ragel 状态机声明
具名 Ragel 代码块
Ragel 块词法规则
基本状态机
正则表达式操作
可视化
Action
代码块可用变量
对宿主语言的接口
Ragel 使用的变量
代码例子
检查字符串中是否包含 foo
str2i 函数
Google 风格指南
头文件
作用域
类
函数
命名约定
注释
函数注释
格式
其他内容
代码优化
不要用 bool 形参
嵌套 if-else 语句优化
多参数函数优化
More Effective C++
条款一:指针和引用
条款二:使用 C++ 类型转换
条款三:不要以多态的方式处理数组
条款四:尽量不要提供默认构造函数
条款五:对定制的“类型转换函数”保持警惕
条款六:分区前置操作符和后置操作符
条款七:不要重载 &&、||和逗号操作符
条款八:了解各种不同意义的 new 和 delete
条款九:利用析构函数避免泄漏资源
条款十:在构造函数中阻止资源泄漏
条款十一:禁止异常流出析构函数之外
条款十二:了解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”之间的差异
条款十三:按引用捕获异常
条款十四:明智利用异常规范
条款十五:了解异常处理的成本
条款十六:谨记八二法则
条款十七:考虑使用缓式评估
条款十八:分期摊还预期的计算成本
条款十九:了解临时对象的来源
条款二十:协助完成“返回值优化(ROV)”
条款二十一:利用重载技术避免隐式类型转换
条款二十二:使用复合重载符取代其独身形式
条款二十三:考虑使用其他程序库
条款二十四:了解虚函数、多继承、虚继承、 RTTI 的成本
条款二十五:虚有构造函数和非成员函数
条款二十六:限制类能够产生的对象数量
条款二十七:限制/禁止 对象产生于堆中
条款二十八:智能指针
条款二十九:引用计数
条款三十:代理类
条款三十一:让函数根据一个以上的对象来决定如何虚化
条款三十二:在未来时态发展程序
条款三十三:将非尾端类设计为抽象类
条款三十四:如何在同一个程序中结合 C++ 和 C
条款三十五:让自己习惯于标准 C++ 语言
通用:永远改变编写异常安全代码的方式
面对现实:编写异常安全的代码是困难的。但是有了这个惊人的模板就得简单多了
例子:编写异常安全的代码是困难的
方案一:暴力解决方案
方案二:学术上正确的方案
方案三:最好的方案
方案四:Petru的方法
实现ScopeGuard
将MakeGuard用于对象和成员函数
差错处理
通过引入传入参数
客官请留步,这里有更多技巧
ScopeGuard的实际使用
结论
鸣谢
引用
C++ 中的对象计数
new, delete, 和 Exceptions
对象计数
使用公有继承
使用组合
使用私有继承
总结
注释和引用
建议阅读
鸣谢
一点关于 Placement new 和 Placement delete 的笔记
C++ 资源整理
标准库
框架
人工智能
异步事件循环
音频
生态学
压缩
并发性
容器
密码学
调试
游戏引擎
图形用户界面
图形
图像处理
国际化
Json
XML
日志
机器学习
数学
多媒体
网络
物理学
机器人学
科学计算
脚本
视频
虚拟机
其他
软件
编译器
在线编译器
调试器
集成开发环境(IDE)
构建系统
静态代码分析
题目
三七互娱 2018 笔试题
2018 三七互娱春招 C++ 笔试题
三七互娱 2020 年秋招面试题
八股文
自我介绍
内存模型
进程和线程的区别
进程和线程的选择
虚拟内存
内存调度算法
IO 模型
IPC
TCP 和 UDP
TCP 如何保证数据可靠性
为什么是三次握手
为什么是四次挥手
流量控制
拥塞控制
GET 和 POST
如何设计数据库
三个范式
数据库隔离级别
设计模式
单例模式的优缺点
单例模式中的饿汉式和懒汉式
常用的 Linux 命令
段错误的原因
STL 五大组件
C++ 迭代器
new 和 malloc 的区别
多重继承以及其中存在的问题?多重继承内部是怎么实现的
多态
测试开发
Session、Cookie 和 Token
面经复盘
脚本
自动编译和运行程序
RTTI
typeid
标准库容器
容器类
容器通用标准
一、序列型容器
构造函数
函数容器
普通函数容器
函数的类型
函数指针类型:
函数类型容器
函数类型数组
函数指针类型数组
函数指针容器
类函数容器
1. 成员函数类型
2.类成员函数指针
3. 成员函数数组
4. 成员函数容器
总结
decltype()与typeid的不一致
虚函数
1. 早捆绑和晚捆绑
2. 声明虚函数
3. 虚函数的实现机理
4. 继承和VTABLE
5.虚函数的重写
6. 虚函数的返回值
抽象基类和纯虚函数
纯虚函数的声明
纯虚函数函数体
构造函数和析构函数中的晚捆绑
虚析构函数
纯虚析构函数
例:基于对象的继承
std::string
一、构造函数
二、操作符
三、添加
四、赋值和拷贝
1.赋值
2. 拷贝
五、插入
六、切片
七、替代
八、索引
九、比较
十、查找
1.find()
2.find_first_of()
3.find_first_not_of()
4.find_last_of()
5.find_last_not_of
十一、其他函数
十二、迭代器
1. begin()和end()
2.erase()
3.rbegin
4.rend
5.rfind
迭代器
Rust
Rust 概要
基础语法
数据类型
注释
函数
条件语句
循环
所有权
切片
结构体
枚举
泛型
错误处理
生命周期参数
模块、包和箱
面向对象
终端 IO
文件 IO
容器
枚举
Option
match
if let
Go
Go 概要
Go 代码结构
基础语法
引用类型
条件语句
循环语句
函数
结构体
切片
defer
字典
面向对象
匿名字段
接口
错误处理
类型断言
协程
通道
调试
导出变量和函数
调用私有方法和成员
Go Mod
网络编程
HTTP 请求
Json
HTML 解析
限制连接数量
文件 IO
检查文件权限
监控文件变化
定时器
摘要
Go 里的定时器
实现原理
单元测试
Java
Java 概要
数据类型
Lambda
面向对象
Java 中的初始化块
继承
包
Object
字符串
随机数
异常
日志
反射
动态代理
注解
泛型
数据结构
Maven
Python
基本概念
编码与解析器
鸭子类型
列表和元组
字典
类
模块
包
装饰函数
类
私有成员
构造函数
析构函数
运算符重载
Django基本思想和操作
一、Django基本思想
二、Django项目
1.创建项目
2.项目
3.App
Django-Model
一、更改数据库
二、激活App
三、定义模型
四、使用数据表
1.生成迁移文件
2.执行迁移
五、测试数据操作
1.进入Django项目shell
2.导入App.models
3.生成表对象
六、测试服务器
七、汉化
状态保持
概述
二、启用session
1.INSTALLED_APPS
2.MIDDLEWARE
三、使用session
Admin管理
一、配置Admin应用
二、创建超级用户
三、登录admin
四、管理表
1.注册表
2.美化表管理
Django模型
一、简介
二、代码示例:
三、字段类型
四、Meta选项
视图层
一、基础
1.URL配置
2.设置url
3.URL如何解析Http请求:
4.namespace
二、视图
1.render()
2.装饰器
3.HttpRequest对象
4.HttpResponse对象
5.HttpResponseRedirect
6.JSonResponse
Python3.7连接MySQL8
scrapy爬取图片
1.创建项目
2.定义item
3.编辑蜘蛛文件
4.编辑图片下载中间件pipline:
5.开启图片通道:
6.启动爬虫
汇编语言
8086处理器的寻址方式
一:寄存器寻址
二:立即寻址
三:内存寻址
变址寻址
8086内存
保护模式内存管理
分段
分页
使用分段
IA_32e分段模式
寻址
段选择子
操作数
1.立即数
2.寄存器操作数
3.内存操作数
代码加载要求
电脑复电后的运行
段
负数
寄存器及其对标志寄存器的影响
一、通用寄存器
二、段寄存器
变址寄存器
指针寄存器
指令寄存器
IP
标志寄存器
寄存器的作用
前缀
硬盘的读写
主引导扇区
bochs调试
过程调用
16 位相对近调用
16 位间接绝对近调用
16 位直接绝对远调用
16 位间接绝对远调用
指令
$和$(NASM)
adc
and
cmp
db、dw和dd
equ
in和out
jle
jne
mov指令对以下寄存器有效
neg
or
pop
push
ret和retf
rol
ror
shl
shr
sub
times
xor
操作系统笔记
进程管理
进程的基本概念
进程的描述
进程互斥
使用信号量实现进程互斥
进程同步
使用信号量实现进程同步
生产者-消费者问题
进程通信
进程调度
线程
储存管理
虚拟储存器
地址重定位
静态地址重定位
动态地址重定位
内外存数据传输控制
内存信息的保护
分区储存管理
分区的分配和回收
页式储存管理
地址变换
段式内存管理
总结
Cache
Cache 对循环的影响
s081
环境搭建
Lab: Xv6 and Unix utilities
第一章内容概要
启动 xv6
实现 sleep
pingpong
64 位操作系统的实现
Windows下搭建Bochs环境
1.下载Bochs
2.配置环境变量
3.创建硬盘映像
4.添加DD到PATH
5.配置Bochs
到此,Bochs配置完成
测试Bochs
1.编写Makefile
2.创建MBR
3.创建start.cmd
4.测试
3.显示字符串
1.以以下代码创建mbr.asm
2.创建Kernel/init目录
3.修改meOS/makefile
4.运行
目录结构
4.读取Loader
1.完整的MBR程序
2.修改Makefile
运行结果
5.进入保护模式
代码运行
至此,保护模式加载完成
开启PAE分页
1.获取CPU的最大带宽
2.查看CPU是否支持PAT
3.开启PAE
PAE:物理地址拓展
PAE的实现
低端1M内存分布
内存管理寄存器
1.全局描述表寄存器(GDTR)
2.本地描述符表(LDTR)
3.中断描述符表寄存器(IDTR)
4.任务寄存器(TR)
显示模式入门
在屏幕上显示粉色
离散数学
第一章:逻辑和证明
一、命题逻辑
1. 命题
2. 逻辑运算符
3. 命题等价式
高等数学
数学常用公式
三角函数
函数、极限和连续
考点
求极限
无穷小阶的比较
间断点及其类型
函数
数列
函数极限
无穷小和无穷大
重要的极限和无穷小
函数的连续性和间断性
有理分式的拆解
极限
自变量趋向于有限值的极限
左极限和右极限
极限存在的条件
极限的性质
极限的存在准则
无穷小、无穷大和无界变量
求极限的方法
利用基本极限求极限
等价无穷小代换
利用有理运算法则求极限
利用洛必达法则求极限
利用泰勒公式求极限
利用夹逼准则求极限
单调有界必有极限
利用定积分的定义求极限
求极限的基本思想
一元函数微分学
考点
导数的概念
利用导数定义求极限
利用导数定义求导数
利用导数定义判断函数的可导性
导函数的求导法则
微分
导数和微分的关系
微分中值定理
洛必达法则
泰勒公式
曲线的凹凸性、极值点和曲率
方法论
极限
一元函数积分学
不定积分
不定积分的计算
基本积分表
第一类换元积分法
第二类换元积分法
分部积分法
有理函数的积分
定积分
变限积分
变限积分的导数
变限积分的阶
定积分的换元法
反常积分
导数和微分
导数
导数题型
微分
曲线的凹凸性
曲线的渐近线
曲率的弧微分和曲率
向量代数和解析空间几何
向量及其运算
平面的方程
多元函数微分学
多元函数的概念
偏导数
全微分
多元函数的求导法则
条件极值
多元函数的几何应用
梯度与方向向量
多元函数积分学
二重积分
三重积分
曲面的面积
曲线积分
无穷级数
常微分方程
可分离变量的微分方程和齐次方程
一阶线性微分方程
可降阶的高阶微分方程
高阶线性微分方程
常系数齐次线性微分方程
高数二
第九章
二、偏导数
三、全微分
四、多元复合函数的求导法则
五、隐函数求导
六、空间曲线的切线和法平面
七、空间曲面的法线和切平面
八、方向导数和梯度
九、多元函数的极值
第十一章 曲线积分和曲面积分
一、对弧长的曲线积分
二、对坐标的曲线积分
三、两类曲线积分之间的联系
四、格林公式
五、曲线积分与路径无关的条件
六、二元函数的全微分
重积分
1. 二重积分
二元函数极限的解法
曲面方程
一、球面方程
二、旋转曲面
三、柱面
四、二次曲面
数量级、向量积和混合积的求解及其几何意义
一、数量级
二、向量积
混合积及其几何意义
线性代数
行列式
矩阵
矩阵的运算
克拉默法则
矩阵的初等变换和线性方程组
线性方程组的解
向量组的线性相关性
线性方程组的解
特征值、特征向量、相似矩阵
方阵的特征值和特征向量
相似矩阵
二次型及其标准型
正定二次型
行列式
题型
概率论与数理统计
随机事件与概率
概率、条件概率、独立性和五大公式
古典概型和伯努利概型
随机变量及其概率分布
随机变量及其分布函数
离散型随机变量和连续型随机变量
常用分布
多维随机变量及其分布
二维随机变量及其分布
随机变量的独立性
二维均匀分布和二维正态分布
两个随机变量函数
\(Z=g(X,Y)\)
的分布
随机变量的数字特征
随机变量的数学期望和方差
矩、协方差和相关系数
参数估计
估计量的求法和区间估计
计算机网络
计算机网络和因特网
网络核心
电路交换
报文交换
分组交换
三种交换方式的优缺点
OSI 参考模型和 TCP/IP 参考模型
应用层
应用与应用层协议
HTTP
非持续连接和持续连接
HTTP请求报文
HTTP响应报文
HTTP 请求方式
Cookie
HTTP 2.0
DNS
域名服务器
域名解析过程
高速缓存
FTP
电子邮件
SMTP
POP3
IMAP
编程实践:创建一个 HTTP 服务器
运输层
UDP
TCP
连接管理
可靠数据传输
流量控制
拥塞控制
滑动窗口协议
停等协议
GBN
SR
套接字 API 与 TCP 之间的关系
网络层
IPv4
IP 地址分类
IP地址聚合
NAT
DHCP
数据链路层
介质访问控制
信道划分介质访问控制
随机访问介质访问控制
轮询访问介质访问控制:令牌传递协议
例题
局域网
IEEE 802.11
广域网
PPP 协议
HDLC 协议
数据链路层设备
网桥
局域网交换机
物理层
奈奎斯特定理与香农定理
传输介质
物理层接口的特性
物理层设备
HTTP
HTTP 方法
持久连接
管线化
状态管理
Cookie
压缩传输和分块传输
多类型数据的传输
范围请求
内容协商
表单数据
HTTP 状态码
协同技术
HTTPS
身份认证
CSRF
计算机组成与结构
计算机的基本结构
系统复杂性管理的方法
主机
存储器的基本组成
运算器的结构和功能
控制器的基本结构
指令的执行过程
机器性能的衡量
系统总线
总线的分类
分类
总线的特征及性能指标
总线结构
总线的性能指标
总线的性能指标例题
总线的判优控制
集中式
分布式
总线操作和定时
总线传输的4个阶段
总线标准
总线标准例题
存储器
概述
半导体存储芯片简介
随机存取存储器
静态 RAM (SRAM):
存储器与 CPU 的连接
存储器的拓展
例题
存储器与 CPU 连接的选择
数据校验
海明校验码
CRC 校验码
提高访存速度的措施
调整主存结构
高速缓冲存储器
Cache和主存的地址映射
Cache 结构
Cache 的基本结构
Cache 的工作效率
IO 系统
概述
IO 设备与主机信息传送的控制方式
程序查询方式
程序中断方式
DMA 方式
IO 接口的基本组成
数据结构与算法
基础概念
取模
日期计算
收集算法
循环不变式
算法设计
分治法
分治法的需要的时间
递归方程式
主定理
递归
主定理
排序
排序算法总结
直接插入排序
折半插入排序
希尔排序
归并排序
冒泡排序
快速排序
直接选择排序
堆排序
堆
维护最大堆的性质
建立堆
堆排序算法
完整代码
插入元素
删除元素
堆排序的 TopK 问题
拓扑排序
计数排序
位运算
位图
串
朴素字符串匹配算法
KMP 匹配算法
链表
异或链表
题库
反转链表
判断是否有环
单链表排序
判断是否是回文链表
常数时间内删除单向链表节点
哈希表
常见用途
树
二叉树
二叉树的遍历
使用序列还原二叉树
平衡二叉树
旋转
插入
红黑树
哈夫曼树
线段树
图
动态规划
小青蛙跳台阶
方法一:递归
方法二:记忆化搜索
方法三:动态规划
最终成果
最大子数组问题
买卖股票的最好时机
338. 比特位计数
跳跃链表
奇技淫巧
快速范围判断
整数跨俗除以 255
将数字裁剪到 255
模拟题
螺旋矩阵
无循环的循环
无循环求和
无循环和无条件语句
打印数字
字符串匹配算法总结
Brute Force
KMP 算法
Horspool 算法
Boyer-Moore 算法
Sunday 算法
RK 算法
代码
记载几个比较有启发性的算法
合并两个有序的数组
双指针
子数组的最大累加和问题
二叉树的镜像
回文数字
最大堆
二分查找
搜索旋转排序数组
偶校验
岛屿数量
全排列
括号生成
电话号码的字母组合
约瑟夫环
无重复字符的最长子串
最长回文子串
三数之和
位运算
只出现一次的数字
下一个排列
分解质因数
滑动窗口
LRU
构造地质学
1. 基础概念
1.1. 地质构造学
1.2. 构造尺度
1.3. 构造层次
2. 沉积岩层和岩浆岩的原生构造及产状
2.1. 利用沉积岩层的原生构造判断岩层的顶底面
2.2. 倾斜岩层与直线的产状要素
2.3. 水平岩层与倾斜岩层在地形地质图上的特征
2.4. 地层的接触关系
2.5. 沉积岩中的软沉积变形构造
3. 地质构造分析的力学基础
3.1. 应力状态
3.2. 应力摩尔圆
3.3. 应力场、应力轨迹与应力集中
3.4. 岩石变形分析
3.5. 旋转应变和非旋转应变
3.6. 全量应变与增量应变
3.7. 岩石的变形阶段
3.8. 影响岩石力学性质的外部因素
3.9. 岩石破裂准则
4. 褶皱构造
4.1. 褶皱要素
4.2. 向斜和背斜
4.3. 褶皱形态
4.4. 枢纽分类
4.5. 同沉积褶皱和底辟构造
4.6. 褶皱的组合形式
4.7. 褶皱的形成机制
4.7.1. 纵弯褶皱作用
4.7.2. 横弯褶皱作用
4.7.3. 剪切褶皱作用
4.7.4. 柔流褶皱作用
4.8. 叠加褶皱
5. 节理
5.1. 节理的分类
6. 断层
6.1. 断层要素
6.1.1. 断层的几何学要素
6.1.2. 断层的运动学要素
6.2. 断层分类
6.3. 断层的识别标志
6.4. 擦痕和阶步
6.5. 伸展构造
6.5.1. 伸展构造的表现形式
6.5.2. 大陆伸展构造模式
6.5.3. 构造反转
6.6. 平移断层
6.6.1. 走滑断层的几何特征
6.6.2. 转换断层
6.7. 逆冲推覆构造
6.7.1. 逆冲推覆构造的几何结构
6.8. 逆冲推覆构造的组合形式
6.9. 逆冲推覆构造的运动学
6.10. 薄皮构造
6.11. 逆冲推覆构造与重力滑覆构造的区别
7. 劈理与线理
7.1. 劈理
7.1.1. 劈理的结构特点与分类
7.1.2. 劈理的成因
7.1.3. 面理置换
7.2. 线理
8. 岩浆岩的构造研究
8.1. 岩浆岩的产状
8.2. 侵入岩体构造的观测和研究
8.3. 岩浆岩体中的原生构造
8.4. 侵入体与围岩接触关系
9. 变质岩区的构造研究-韧性剪切带
9.1. 剪切带和韧性剪切带
9.2. 韧性剪切带运动方向的确定
10. 新构造运动
10.1. 基本概念及研究意义
10.2. 我国新构造运动的基本特征
10.3. 新构造运动的研究方法
10.3.1. 地质构造法
10.3.2. 构造地貌法
10.3.3. 地貌(断层引起)研究
10.4. 新构造水平运动地貌标志
英语笔记
口语
发音
复合形容词的发音
辅音连缀的连读
同化
击穿
句子中的重读
列举时的语调
弱读
be 动词的弱读
冠词的弱读
情态动词的弱读
介词的弱读
人称代词的弱读
物主代词的弱读
助动词的弱读
小结
特殊语调
特殊疑问句的特殊语调
选择疑问句的特殊语调
反问疑问句的特殊语调
陈述句的特殊语调
常识
垃圾
短语
Learning Scrapy
序言
理解HTML和XPath
HTML、DOM树结构和XPath
HTML文档
树结构
浏览器中的页面
常见工作
提前应对网页发生改变
总结
爬虫基础
安装Scrapy
MacOS
Windows
Linux
从GitHub安装
升级Scrapy
Vagrant:本书案例的运行方法
UR²IM——基础抓取过程
The URL
请求和响应
抓取对象
一个Scrapy项目
定义items
编写爬虫
填充一个项目
保存到文件
清洗——项目加载器和杂务字段
提取更多的URL
用CrawlSpider二维抓取
总结
Qt笔记
对象模型
QObject
qobject_cast vs dynamic_cast
布局管理
设置部件尺寸
布局管理器
伸缩因子
自定义布局
QScrollArea
绘图
坐标系统
window - viewport 坐标转换
双缓冲绘图
图片压缩
界面外观和风格
Qt风格
获取风格
指定程序风格
调色板和颜色
自定义界面风格
样式表
信号和槽
声明信号和槽
连接信号和槽
多线程中的信号和槽
套接字
多线程
QMutex
反射
国际化
国际化
动态字符串的翻译
杂项
CMake
Qt5 和 Qt6 的 CMake 兼容
Qt 笔记
绘制系统组件
绘图事件与其发生时机
设置控件颜色
一、使用QPalette设置颜色
二、使用QSS设置背景色
GUI基本概念
一、窗口布局
二、窗口
三、坐标系统
2. 框线和填充
框线
填充
QT中的内存管理
Qt对象树
Q&A
QT分类
对话框
一、模态对话框
二、非模态对话框
QListWidget实现右键菜单
1.生成槽函数
2.更改contextMenuPolicy属性
3.编辑槽函数
QT加速编译
QT应用图标和窗口图标
1.设置主窗口图标
2.设置文件图标
QT解析Json
常用的类方法
读取一级键值
读取一级数组
读取三级键值
读取数组的全部代码
一个特殊的QJsonObject对象
Qt 5.12 Widget桌面开发
Qt基础
Qt附加程序
元对象系统
事件系统
其他组件
调试和日志系统
文件读取
Model/View结构
SQL
进程通信
数据库
数据解析
网络
线程
绘图
Qt基本组件
布局管理
数据
Qt美化
帮助系统
Qt国际化
多媒体
自定义插件和库
Qt枚举
常见错误
附录
优秀资源
参考文献
Qt去掉标题栏
第一种
第二种
Qt 思维导图
Tcp
QTcpServer
公有函数
QTcpSocket
使用QTcpSocket连接网站
参考
创建线程与互斥锁
创建线程
互斥锁
QMutexLocker
多线程的常用术语
一、原语
二、进程控制原语
三、同步原语
简答题
参考
可运行对象
线程池
使用线程池
参考资料
QWaitCondition
信号量
Future
Future的基本概念
QFuture
开辟线程
Map和Filter
QThread
QThread属性
QThread成员函数
QThread的使用
向QMainWindow中添加布局
找到默认布局器
设置布局
OpenGL
入门
环境搭建和第一个 Demo
绘图初步
创建着色器
开辟顶点缓冲区
复制顶点数据
指定顶点属性
渲染顶点
顶点索引
GTest
初识 gtest
前言
下载
编译
第一个Demo
总结
断言
前言
示例
布尔值检查
数值型数据检查
字符串检查
显示返回成功或失败
异常检查
Predicate Assertions
浮点型检查
Windows HRESULT assertions
类型检查
总结
事件机制
前言
全局事件
TestSuite事件
TestCase 事件
总结
参数化
前言
旧的方案
使用参数化后的方案
告诉gtest你的参数类型是什么
告诉gtest你拿到参数的值后,具体做些什么样的测试
告诉gtest你想要测试的参数范围是什么
参数化后的测试案例名
类型参数化
总结
死亡测试
前言
使用的宏
*_DEATH(statement, regex)
*_EXIT(statement, predicate, regex)
*_DEBUG_DEATH
关于正则表达式
死亡测试运行方式
总结
运行参数
前言
基本介绍
参数列表
XML报告输出格式
总结
深入解析gtest
前言
从TEST宏开始
回过头看看TEST宏的定义
再来了解RUN_ALL_TESTS宏
总结
打造自己的单元测试框架
前言
整体设计
TestCase类
UnitTest类
NTEST宏
RUN_ALL_TEST宏
断言的宏EXPECT_EQ
案例Demo
总结
GMock
对数组进行断言
CMake
基本语法
基本约定
数据类型、循环和条件语句
数据类型
字符串
布尔值
列表
条件语句
循环
生成表达式
布尔生成表达式
查询目标信息
调试
CMake 核心
TODO and NOT TODO
声明式语言
变量和变量值
命令和子命令
presets
基于目标的构建
目标别名
target_include_directories
target_link_libraries
target_compile_options
target_compile_features
导出库
打包
获取项目
FetchContent
Find*.cmake
pkg-config
平台独立的命令
CTest
加速构建
划分子项目
预编译头
Unity Build
Ccache
并行编译
Ninja
cotire
分布式编译
C++包管理器
容器
基础知识
网络
容器网络模型
网络驱动
Docker Compose 中的网络
FirewallD
设计模式
设计模式原则
单一职责
开闭原则
里氏替换原则
依赖倒置原则
接口隔离原则
迪米特法则
创建者模式
简单工厂模式
工厂模式
抽象工厂模式
单例模式
建造者模式
原型模式
结构型模式
适配器模式
桥接模式
过滤器模式
组合模式
装饰器模式
外观模式
享元模式
代理模式
行为型模式
责任链模式
命令模式
解释器模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
空对象模式
策略模式
模板模式
访问者模式
J2EE 模式
MVC 模式
业务代表模式
组合实体模式
数据访问对象模式
前端控制器模式
拦截过滤器模式
服务定位器模式
数据库
基础知识
基本概念
乐观锁和悲观锁
MySQL 中的锁
两种锁的比较
事务
数据安全
排它锁和共享锁
数据库安全保护
连接
数据库三级模式结构
索引
数据库范式
主键
数据库基本操作
一、进入MySQL
二、控制台输出混乱
三、基本指令
四、查
五、排序
六、条件过滤
WHERE逻辑运算符
逻辑运算符
七、通配符过滤
八、正则匹配
数据清洗和汇总
一、字段
拼接字段
二、别名
三、函数
1.去除空格
2.文本处理函数
1.截取串
2.字符串查找
3.字符串截取
4.模糊音查询
5.时间函数
6.数学函数
7.聚集函数
四、分组
五、数据汇总
MySQL子句顺序
SQL Server
一、创建数据库
二、删除数据库
三,修改数据库
1.缩小数据库占用的空间
四、查看数据库信息
1.使用目录视图。
2.使用函数
3.使用系统储存过程
数据类型
用户自定义类型
数据表
一、创建数据表
二、重命名表
二、删除表
三、添加字段
四、修改字段
五、重命名字段
五、删除字段
SQL SERVER2017
目录
第一章 SQL SERVER基础
1.1 系统数据库
目录
SQL 操作结果集 -并集、差集、交集、结果集排序
操作结果集
常见的SQL笔试题和面试题(上):经典50题
查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号
查询学生的学号、修课数、平均分,并按照平均分进行排序。
使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计各分数段人数:课程ID和课程名称
四、查询出每门课程的及格人数和不及格人数
五、查询出每门课程的及格百分比
六、查询和“01”号同学所学课程完全相同的其他同学的学号
七、把“SCORE”表中“张三”老师教的课的成绩都更改为此课程的平均成绩
八、按各科平均成绩从低到高和及格率的百分数从高到低排列,以如下形式显示:课程号,课程名平均成绩,及格百分数
九、查询不同老师所教不同课程平均分从高到低显示
十、查询各科成绩前三名(包括重复)
十一、查询学过编号为“01”的课程并且也学过编号为“02”的课程的学生的学号、姓名
SQL中的case when then else end用法
T-SQL中的查询偏移
T-SQL日期
表结构如下:
题:
统计每门课程的修课人数和考试最高分
统计每个学生的选课门数,并按选课门数的递增顺序显示结果
查询选课门数超过2门的学生的平均成绩和选课门数
查询选修了c02号课程的学生的姓名和课程名。
查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。
查询哪些课程没有人选,要求列出课程号和课程名。
8. 查询有考试成绩的所有学生的姓名、修课名称及考试成绩
9.用子查询查询选修了C01号课程的学生的姓名和所在系。
10. 查询高等数学成绩80分以上的学生的学号、姓名。
11.将所有选修VB课程的学生的成绩加10分
版权声明:
sql执行顺序
个人金融管理系统
一、表结构
添加外键时提示“引用的表无效”
创建资金转移表
添加字段
查看表结构
备份设备
一、创建备份设备
二、删除备份设备
Linux
SELinux
概述
管理 SELinux
管理 SELinux 策略
查询策略信息
从策略中搜索规则
布尔值
文件安全上下文
策略管理工具
模块
自定义模块
日志审计系统
aureport
ausearch
audit2why
audit2allow
autrace
sealert
其他工具
wget
参数
范例
批量下载文件
磁盘格式性能测试
测试环境
样本测试
小样本测试
大样本测试
中样本测试
Ext4
小样本测试
中样本测试
大样本测试
XFS
小样本测试
中样本测试
大样本测试
BtrFS
小样本测试
中样本测试
大样本测试
NTFS
小样本测试
中样本测试
大样本测试
SWAP
小样本测试
中样本测试
大样本测试
ffmpeg 使用
常见参数
Pandoc
指定输出格式
使用 Systemd Timer 调度任务
Cron vs anacron vs systemd:快速查看
配置
演示
其他操作
概括
vim
光标
字符操作
列编辑
可视模式
窗口管理
代码折叠
终端命令
切换工作区
自动对齐
键盘
内置终端
宏
插件
忽略大小写
非贪婪匹配
二进制模式
Vim 文本对象:终极指导
编辑命令的结构
纯文本文本对象
词
句子
段落
Motion 命令 vs. 文本对象命令
编程语言文本对象
字符串
括号
中括号
大括号
标记语言标签
Vim 脚本提供的额外文本对象
GDB
前提需求
设置断点
运行代码
查看运行时信息
GDB 脚本
调试 Core 文件
跟踪过程调用
多线程调试
动态库调试
加密
WSL 中的 GUI
Linux 系统假死的解决办法
KVM
安装
VirtIO
GVT-g
硬件加速
显卡直通
Spice 文件共享
Git
相对位置
常用命令
合并多个项目
将更改提交到新的分支上
合并部分文件
合并部分 commit
本地强制覆盖远程和远程强制覆盖本地
撤销 commit
撤销代码更改
删除子模块
子模块的使用
撤销暂存
修改 commit 信息和添加新文件到上个 commit
git pull
撤销指定行
代码提交
消息格式
使用 commitizen 规范提交
WSL 中的 GPG 签名
GPG 签名问题
项目提交规范
setcap
Linux内核中Capabilities的实现机制
使用例子:
导出并保存GPG公密钥
简介
备份
导出私钥
导入公钥私钥
保存
缓存
分发
Linux
系统的安装
SSH
硬件管理
散热
硬盘
电源管理
软件优化
使用高性能的 dbus-broker
为桌面用户预留资源
GameMode
改善低内存条件下的表现
zram
永久配置
临时配置
禁用 zram
交换文件
双显卡
使用 NVIDIA 作为主显卡
更新用户文件夹
更新固件
ksmbd
Samba
服务
键盘映射
系统日志
systemd 日志
查看内核消息
查看实时日志
其它日志
查看硬件温度
KDE 主题位置
rpm 安装源码包
修改 exif 信息
nfs
firewalld
Podman
创建容器
开机启动容器
自动更新容器
挂载的数据卷无法访问
CGroups
CGroups 的基本结构
CPU 子系统
IO 子系统
内存子系统
杂项
女生须知:关于阴道,你必须知道的小知识!
软件推荐
Windows
逆向
工具
字体
音乐
阅读
读书日记
小岛经济学
金句
杂项
C++
好的资源
服务器编程
套接字
大端序和小端序
地址格式
套接字描述符
绑定地址
监听地址
建立连接
接受连接
创建套接字
接收连接
接收和发送数据
客户端
Select
epoll
异常处理
错误对照表
文件 IO
dup
/dev/fd
打开文件
fcntl
lseek
读写数据
离散读和聚集写
使用轮询的非阻塞 IO
IO 多路复用
select
poll
epoll
水平触发和边缘触发
epoll 的五种写法
mmap
signalfd
timerfd
inotify
fanotify
文件 IO
缓冲类型
记录锁
建议锁和强迫锁
文件锁
进程环境
进程的属性
替代软件
进程控制
fork
fork 失败的原因
exec
进程退出
waitpid
线程
线程标示
创建线程
互斥锁
读写锁
条件变量
自旋锁
屏障
事务内存
线程池
协程
协程分类
对称协程和非对称协程
有栈协程和无栈协程
调用栈
协程原语
协程的实现方式
协程
使用 ucontext 实现的协程
ucontext
协程库的基本结构
创建调度器
创建协程
让出协程和恢复协程
进程间通信
管道
eventfd
netlink
Linux futex 浅析
futex 诞生之前
futex 来了
futex 和它的兄弟姐妹们
Bitset 系列
Requeue 系列
Wake & Operator
Priority Inheritance 系列
Linux pi_futex浅析
深入理解C++对象模型
对象
封装成本
对象模型
简单对象模型
表格对象模型
C++对象模型
C++继承模型
C++编程范型
构造函数
默认构造函数
拷贝构造函数
数据成员
类的空间占用
数据成员的绑定
数据成员的内存排列
数据成员的存取效率
笔记
»
张龙涛的笔记
查看页面源码
张龙涛的笔记
笔记一共分为以下几个部分:
编程语言
reStructuredText
reStructuredText 规范
使用 Sphinx 生成 PDF
测试开发
接口测试
C++
C
基础概念
类
模板
资源管理
异常处理
生命周期
引用类型
输入输出流
智能指针
类型转换
编译期
标准库
自定义类型的迭代器
线程
Range
常见范式
Ragel
Google 风格指南
代码优化
More Effective C++
通用:永远改变编写异常安全代码的方式
C++ 中的对象计数
C++ 资源整理
题目
八股文
测试开发
面经复盘
脚本
RTTI
标准库容器
函数容器
虚函数
抽象基类和纯虚函数
构造函数和析构函数中的晚捆绑
例:基于对象的继承
std::string
迭代器
Rust
Rust 概要
枚举
Go
Go 概要
网络编程
文件 IO
定时器
摘要
Go 里的定时器
实现原理
单元测试
Java
Java 概要
Maven
Python
基本概念
Django基本思想和操作
Django-Model
状态保持
Admin管理
Django模型
视图层
Python3.7连接MySQL8
scrapy爬取图片
汇编语言
8086处理器的寻址方式
8086内存
保护模式内存管理
操作数
代码加载要求
电脑复电后的运行
段
负数
寄存器及其对标志寄存器的影响
寄存器的作用
前缀
硬盘的读写
主引导扇区
bochs调试
过程调用
指令
课程笔记
操作系统笔记
进程管理
储存管理
虚拟储存器
Cache
s081
64 位操作系统的实现
离散数学
第一章:逻辑和证明
高等数学
数学常用公式
函数、极限和连续
极限
一元函数微分学
一元函数积分学
导数和微分
向量代数和解析空间几何
多元函数微分学
多元函数积分学
无穷级数
常微分方程
高数二
线性代数
行列式
矩阵
特征值、特征向量、相似矩阵
行列式
概率论与数理统计
随机事件与概率
随机变量及其概率分布
多维随机变量及其分布
随机变量的数字特征
参数估计
计算机网络
计算机网络和因特网
应用层
运输层
网络层
数据链路层
物理层
HTTP
计算机组成与结构
计算机的基本结构
系统总线
存储器
IO 系统
数据结构与算法
基础概念
循环不变式
算法设计
递归方程式
主定理
排序
位运算
串
链表
哈希表
树
图
动态规划
跳跃链表
奇技淫巧
模拟题
无循环的循环
字符串匹配算法总结
记载几个比较有启发性的算法
构造地质学
1. 基础概念
2. 沉积岩层和岩浆岩的原生构造及产状
3. 地质构造分析的力学基础
4. 褶皱构造
5. 节理
6. 断层
7. 劈理与线理
8. 岩浆岩的构造研究
9. 变质岩区的构造研究-韧性剪切带
10. 新构造运动
英语笔记
口语
常识
库和工具
Learning Scrapy
序言
理解HTML和XPath
常见工作
总结
爬虫基础
Qt笔记
对象模型
布局管理
绘图
界面外观和风格
信号和槽
套接字
多线程
反射
国际化
杂项
Qt 笔记
OpenGL
入门
GTest
初识 gtest
断言
事件机制
参数化
死亡测试
运行参数
深入解析gtest
打造自己的单元测试框架
GMock
CMake
基本语法
生成表达式
CMake 核心
CTest
加速构建
C++包管理器
容器
基础知识
网络
杂项
设计模式
设计模式原则
创建者模式
结构型模式
行为型模式
J2EE 模式
数据库
基础知识
数据库基本操作
数据清洗和汇总
MySQL子句顺序
SQL Server
Linux
SELinux
wget
磁盘格式性能测试
ffmpeg 使用
Pandoc
使用 Systemd Timer 调度任务
vim
Vim 文本对象:终极指导
GDB
加密
WSL 中的 GUI
Linux 系统假死的解决办法
KVM
Git
setcap
导出并保存GPG公密钥
Linux
nfs
Podman
CGroups
CGroups 的基本结构
CPU 子系统
IO 子系统
内存子系统
杂项
女生须知:关于阴道,你必须知道的小知识!
软件推荐
读书日记
金句
杂项
好的资源
服务器编程
套接字
异常处理
文件 IO
文件 IO
进程环境
进程控制
线程
协程
进程间通信
Linux futex 浅析
Linux pi_futex浅析
深入理解C++对象模型
对象
构造函数
数据成员
索引和表
索引
模块索引
搜索页面