齐天大圣

C++内存

C++ 内存模型 C++ 程序在执行时,将内存大方向划分为4 个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 C/C++ 内存布局 程序运行前  在程序编译后,生成了可执行程序,未...

C++ 左值、右值和右值引用和移动语义

C++ 左值、右值和右值引用 在 C++ 中,左值(lvalue)、右值(rvalue)和右值引用(rvalue reference)是与对象存储、对象身份及其可移动性相关的三个概念。 Lvalue 左值是表达式的结果,它指向一个明确的内存位置,可能是变量、数组的一个元素或者一个对象的引用。左值的特点是它们可以持续存在超出单个表达式的生命周期。你可以将左值看作是一个可以被赋值的实体。例...

STL 容器

C++ 容器 STL容器就是将运用最广泛的一些数据结构实现出来 常用的数据结构:数组、链表、树、栈、队列、集合和映射表等 这些容器分为序列式容器和关联式容器两种: 序列式容器: 强调值的排序,序列式容器中的每个元素均有固定的位置 关联式容器: 二叉树结构,各元素之间没有严格的物理上的顺序关系 序列式容器/顺序容器 Sequential Containers 序列式容器...

C++模板(template)

C++ 模板 (template) C++ 模板概述 模板允许你定义一个可以根据你的用途进行编译的模板。模板是泛型编程的基础,类似于 Java 中的泛型。 模板只有在被调用的时候才会创建,编译时不会被创建,如果模板代码有错误,编译不会出错,但运行会出错 模板不应该被滥用,滥用了会导致可读性太差,有的团队禁止用模板 C++ 提供两种模板机制:函数模板 和 类模板 函数模...

C++枚举

C++ 枚举 C++ 枚举 枚举量的声明 enum 是 enumeration 的缩写。基本上它就是一个数值集合。不管怎么说,这里面的数值只能是整数。 定义枚举类型的主要目的:增加程序的可读性 枚举变量的名字一般以大写字母开头(非必需) 默认情况下,编译器设置第一个枚举变量值为 0,下一个为 1,以此类推(也可以手动给每个枚举量赋值),且 未被初始化的枚举值的值默认将...