[C++]文件系统filesystem库 文件系统filesystem库C++17标准的一个重要补充是filesystem库,它使我们能够处理分层文件系统(如Windows或POSIX的文件系统)中的路径、文件和目录。 1 使用文件系统路径filesystem库位于 <filesystem> 头文件的 std::filesystem 命名空间中。 文件系统组件(文件、目录、硬链接或软链接)的路径由 path 类表示。 1.1 2024-11-06 编程语言 #C++
[C++]C++Primer Chapter 17 17 标准库特殊设施4 随机数定义在头文件random中的随机数库通过一组协作的类来生成随机数: 随机数引擎类(random-number engines) 随机数分布类(random-number distribution) 一个引擎类可以生成unsigned随机数序列,一个分布类使用一个引擎类生成指定类型的、在给定范围内的、服从特定概率分布的随机数。 4.1 随机数引擎和分布随机数引擎是函 2024-11-03 编程语言 #C++
[OS]Three Easy Pieces Chapter 14 Interlude: Memory API本章介绍UNIX系统中内存相关的API。 1 Types of Memory在c程序中,有两种类型的内存 栈内存 栈内存,也被称为自动存储内存,由编译器隐式的申请和释放。 堆内存 由程序员手动的通过malloc和free申请和释放。 2 The malloc() Call1void *malloc(size_t size); 该函数比较简单,在堆 2024-11-01 操作系统 #OS
[OS]Three Easy Pieces Chapter 13 The Abstraction: Address Spaces1 Early Systems从内存的角度来看,早期的机器并没有为用户提供太多的抽象概念。基本上,操作系统是在内存中的程序(实际上是程序库),而有一个正在运行的程序(进程)当前位于物理内存中,并使用内存的其余部分。 2 The Address Space地址空间是操作系统提供给用户的一种抽象。在用户看来,它可以使用整个地址空间的内存。 2024-11-01 操作系统 #OS
[OS]Three Easy Pieces Chapter 9 Scheduling: Proportional Share在本章中,将研究一种不同类型的调度程序,即比例共享(proportional share)调度程序,有时也称为公平共享(fair-share)调度程序。比例共享调度器基于一个简单的概念:调度器可以不对周转时间或响应时间进行优化,而是设法保证每个作业都能获得一定比例的 CPU 时间。其基本思想非常简单:每隔一段时间举行一次抽签,决定下一个运 2024-11-01 操作系统 #OS
[C++]现代C++语言核心特性解析 Chapter 14 强枚举类型(C++11C++17 C++20)1 枚举类型的弊端类型问题 虽然枚举类型存在一定的安全检查功能,一个枚举类型不允许分配到另外一种枚举类型,而且整型也无法隐式转换成枚举类型。但是枚举类型却可以隐式转换为整型,因为C++标准文档提到“枚举类型可以采用整型提升的方法转换成整型”。 作用域问题 枚举类型会把其内部的枚举标识符导出到枚举被定义的作用域。也是就说,我们使用枚举标识符的时候,可以跳 2024-11-01 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 13 继承构造函数(C++11)1 使用继承构造函数C++中可以使用using关键字将基类的函数引入派生类 12345678910111213141516class Base {public: void foo(int) {}};class Derived : public Base {public: using Base::foo; void f 2024-11-01 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 12 委托构造函数(C++11)1 委托构造函数C++11标准支持了委托构造函数:某个类型的一个构造函数可以委托同类型的另一个构造函数对对象进行初始化。为了描述方便我们称前者为委托构造函数,后者为代理构造函数(英文直译为目标构造函数)。 123456789101112class X{public: X() : X(0, 0.) {} X(int a) : X(a, 0. 2024-11-01 编程语言 #C++
[C++]现代C++语言核心特性解析 Chapter 11 非受限联合类型(C++11)1 联合类型在C++中的局限性过去的C++标准规定,联合类型的成员变量的类型不能是一个非平凡类型,也就是说它的成员类型不能有自定义构造函数 123456union U{ int x1; float x2; std::string x3;}; 上面的代码是无法通过编译的,因为x3存在自定义的构造函数,所以它是一个非平凡类型。 2 使用非受限联合 2024-11-01 编程语言 #C++