C++ 中的 stack
要真正理解栈这种结构,意味着我们要剥离事物表象,追究其最本质的问题,即我们到底面临什么样的数据处理需求,才导致了 “栈” 这种结构的诞生? 我们不需要把栈仅仅看作是教科书上的定义,而是把它看作是为了解决特定时序问题而设计的一种 “受限” 模型。 1. 什么是栈? 从本质上来说,计算机处理任务通常有两种模式:...
要真正理解栈这种结构,意味着我们要剥离事物表象,追究其最本质的问题,即我们到底面临什么样的数据处理需求,才导致了 “栈” 这种结构的诞生? 我们不需要把栈仅仅看作是教科书上的定义,而是把它看作是为了解决特定时序问题而设计的一种 “受限” 模型。 1. 什么是栈? 从本质上来说,计算机处理任务通常有两种模式:...
在计算机科学的教科书中,关于进程(Process)的定义往往只有冷冰冰的一句话: 进程是程序的一次执行过程。 这句话虽然准确,但它掩盖了太多细节。对于初学者而言,这更像是一个黑盒。为什么要有进程?为什么不能直接操作物理地址?所谓的上下文切换到底切换了什么? 要真正理解进程,我们不能只看定义,而必须回...
深入理解 C++ 中初始化列表与列表初始化的区别:前者解决对象生命周期与内存模型问题,后者统一初始化语法并提供类型安全保障。
在现代 C++ 开发中,虽然 std::vector 足以应付绝大多数的场景,但是在某些特定场景下,std::list 依旧是不可替代的神器。 核心概念与底层原理 头文件:#include <list> 本质:双向链表(Doubly Linked List) 内存模型:非连续内存。每...
深入理解 C++ 构造函数的本质:从资源管理到性能优化。涵盖默认构造、拷贝构造、移动构造,以及 RAII、explicit、constexpr 等关键机制。