[C++]现代C++语言核心特性解析 Chapter 10 默认和删除函数(C++11)1 类的特殊成员函数 默认构造函数 析构函数 复制构造函数 复制赋值运算符函数 移动构造函数(C++11新增) 移动赋值运算符函数(C++11新增) 注意事项 声明任何构造函数都会抑制默认构造函数的添加。 一旦用自定义构造函数代替默认构造函数,类就将转变为非平凡类型。 2 显示默认和显示删除 C++11显式默认和显式删除的语法非常简单,只需要在声明函数的尾部添加& 2024-11-01 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 9 列表初始化(C++11 C++20)1 回顾变量初始化一般来说,我们称使用括号初始化的方式叫作直接初始化,而使用等号初始化的方式叫作拷贝初始化(复制初始化)。请注意,这里使用等号对变量初始化并不是调用等号运算符的赋值操作。实际情况是,等号是拷贝初始化,调用的依然是直接初始化对应的构造函数,只不过这里是隐式调用而已。 2 使用列表初始化 C++11C++11标准引入了列表初始化,它使用大括号{}对变 2024-11-01 编程语言 #C++
[RL]基本概念 基本概念状态(state)智能体(agent)相对于环境的状况(status) 对于网格世界的例子,智能体的位置就是状态。 状态空间:所有状态的集合 $S = {s_i}_{i = 1}^9$ 动作(action)对于每个状态,可以采取的行动。 状态的动作空间 2024-10-31 强化学习 #RL
[C++]现代C++语言核心特性解析 Chapter 8 非静态数据成员默认初始化(C++11 C++20)1 使用默认初始化在C++11以前,对非静态数据成员初始化需要用到初始化列表,当类的数据成员和构造函数较多时,编写构造函数很痛苦。 为了解决这种问题,C++11标准提出了新的初始化方法,即在声明非静态数据成员的同时直接对其使用=或者{}(见第9章)初始化。在此之前只有类型为整型或者枚举类型的常量静态数据成员才有这种声明默认初始化的待遇。 2024-10-31 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 7 lambda表达式(C++11~C++20)1 lambda表达式语法语法: 1[ captures ] ( params ) specifiers exception -> ret { body } [ captures ] —— 捕获列表,它可以捕获当前函数作用域的零个或多个变量,变量之间用逗号分隔。捕获列表的捕获方式有两种:按值捕获和引用捕获。 ( params 2024-10-31 编程语言 #C++
[LC]2140.解决智力问题 题目给你一个下标从 0 开始的二维整数数组 questions ,其中 questions[i] = [pointsi, brainpoweri] 。 这个数组表示一场考试里的一系列题目,你需要 按顺序 (也就是从问题 0 开始依次解决),针对每个问题选择 解决 或者 跳过 操作。解决问题 i 将让你 获得 pointsi 的分数,但是你将 无法 解决接下来的 brainpoweri 个问题(即只 2024-10-31 算法 > 动态规划 #algorithm #leetcode #dp
[MIT 6.1810]Xv6 Chapter 8 File system文件系统的功能主要就是组织、存储、共享数据。 1 Overviewxv6的文件系统由七层组成。 disk :以块为单位,读写硬盘 buffer cache: 缓存硬盘块 同步:确保每次只有一个内核进程可以修改某个特定块的数据。 logging: 允许高层在一个事务中对多个块进行更新 确保崩溃的时候,多个块的更新具有原子性(都更新或者都没更新) inode:用i-nu 2024-10-27 操作系统 #MIT 6.1810
[GIT]常用基本操作 Git 是一个分布式版本控制系统,用于跟踪文件的更改,协助团队协作开发软件项目。 1. 初始化 Git 仓库要使用 Git 跟踪项目,首先需要将项目目录初始化为 Git 仓库。 1git init 这会在当前目录下创建一个隐藏的 .git 文件夹,用于存储版本控制相关的数据。 2. 克隆远程仓库如果已有远程仓库,可以通过 git clone 命令将其复制到本地: 1git clone https 2024-10-21 工具 #git