[GIT]分支常用操作 分支允许我们在不同的方向上工作,而不影响主分支。如果项目中不同的功能或修复位于不同的分支上,便可以单独开发、测试,并在必要时合并回主分支。 1. 创建分支当开始一个新功能或想要实验某些东西时,可以创建一个新的分支。假设已经初始化了一个 Git 仓库或克隆了一个现有的仓库,可以使用以下命令创建并切换到一个新的分支: 1git checkout -b <branch-name> 例如,如 2024-10-21 工具 #git
[C++]现代C++语言核心特性解析 Chapter 6 右值引用(C++11 C++17 C++20)1 左值和右值在C++中 左值一般是指一个指向特定内存的具有名称的值(具名对象),它有一个相对稳定的内存地址,并且有一段较长的生命周期。 右值则是不指向稳定内存地址的匿名值(不具名对象),它的生命周期很短,通常是暂时性的。 基于这一特征,可以用取地址符&来判断左值和右值,能取到内存地址的值为左值,否则为右值。 除字 2024-10-20 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 5 函数返回类型后置(C++11)1 使用函数返回类型后置声明函数返回复杂类型的时候,返回类型后置更有效。 1234567891011121314151617181920int bar_impl(int x){ return x;}typedef int(*bar)(int);bar foo1(){ return bar_impl;}auto foo2()- 2024-10-20 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 4 decltype说明符(C++11~C++17)1 使用decltype说明符decltype说明符可以获取对象或者表达式的类型。并且可以用于非静态成员变量。 用处 在c++11标准中,不支持对auto声明的返回类型进行推导,所以需要用decltype在函数的尾部对返回类型进行说明 1234567template<class T1, class T2>auto sum(T1 a1, 2024-10-20 编程语言 #C++
[OS]Three Easy Pieces Chapter 8 Scheduling: The Multi-Level Feedback Queue多级反馈队列(Multi-level Feedback Queue,MLFQ)需要解决两个问题: 优化周转时间 通过SJF或者STCT可以优化周转时间,但是这需要提前知道一个任务的运行时间。 优化响应时间 RR可以优化响应时间,但是周转时间很差。 1 MLFQ: Basic Rules多级反馈队列有多个队列 2024-10-20 操作系统 #OS
[OS]Three Easy Pieces Chapter 7 Scheduling: Introduction1 Workload Assumptions Each job runs for the same amount of time. All jobs arrive at the same time. Once started, each job runs to completion. All jobs only use the CPU (i.e 2024-10-20 操作系统 #OS
[OS]Three Easy Pieces Chapter 6 Mechanism: Limited Direct Execution操作系统必须以高效的方式虚拟化 CPU,同时保留对系统的控制。为此,需要硬件和操作系统的支持。操作系统通常会明智地使用一些硬件支持,以便有效地完成工作。 1 Basic Technique: Limited Direct Execution 图中显示了直接执行的简要流程,这个流程存在两个问题: 操作系统如何保持对进程的控制,防 2024-10-19 操作系统 #OS
[LC]47.全排列Ⅱ 题目给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 分析这道题目给定的数组中存在重复数字,我们可以先将数字排序,然后在枚举$pos$的时候只枚举不同的元素,如果当前元素已经在当前位置被枚举过了,则跳过,保证每个位置每个元素只会被枚举一次。 需要特别注意的是跳过条件,如果我们只是单纯的采用如下条件判断: 1if (i > 0 && nums[i] 2024-10-18 算法 #algorithm #leetcode #回溯