images/logo.jpg

枕石的个人博客

Cpp常见STL操作

一、STL 容器整体分类(先有全局认知)

STL Containers
├── 顺序容器(Sequence)
│   ├── vector
│   ├── deque
│   ├── list / forward_list
│   └── array
│
├── 关联容器(有序,基于红黑树)
│   ├── set / multiset
│   └── map / multimap
│
├── 无序关联容器(哈希表)
│   ├── unordered_set / unordered_multiset
│   └── unordered_map / unordered_multimap
│
└── 容器适配器(接口受限)
    ├── stack
    ├── queue
    └── priority_queue

二、顺序容器(Sequence Containers)

1️⃣ vector —— 动态数组(最常用)

特点

C语言中的关键字

关键字大体上分为三大类:数据类型关键字、修饰关键字、逻辑关键字。

sizeof 关键字

sizeof(x):编译器给我们查看内存空间容量的工具,在编译时计算并确定x在内存中所占用的字节数。

内存管理:页表(译文)

本文译自 OSDev Wiki 上的一篇文章,原文链接为 Page Tables

页面表(或页映射层级)用于将每个虚拟页映射到对应的物理页。零个或多个虚拟页可以对应同一个物理页。页的大小取决于处理器模式(保护模式、兼容模式或长模式)、所使用的扩展(如 PAE)以及处理器所支持的虚拟地址位数(当前 AMD64 处理器最多支持 48 位虚拟地址)。

内存管理:页帧分配(Page Frame Allocation)译文

本文译自 OSDev Wiki 上的一篇文章,原文链接为 Page Frame Allocation

物理内存分配器(Physical Memory Allocators)

这些算法用于在需要时向你提供新的页帧(page frame)。该算法的调用者通常并不关心返回的是哪一帧,特别是当请求 n 个页时,也不需要返回连续的页帧(除非你要为网络包缓冲等 DMA 操作分配内存)。