STL 算法
STL 常用算法 算法主要是由头文件 <algorithm> <functional> <numeric> 组成。 <algorithm> 是所有 STL 头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric> 体积很小,只包括几个在序列上面进行简单数学运算的模板函数 &l...
STL 常用算法 算法主要是由头文件 <algorithm> <functional> <numeric> 组成。 <algorithm> 是所有 STL 头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric> 体积很小,只包括几个在序列上面进行简单数学运算的模板函数 &l...
C++ 容器 STL容器就是将运用最广泛的一些数据结构实现出来 常用的数据结构:数组、链表、树、栈、队列、集合和映射表等 这些容器分为序列式容器和关联式容器两种: 序列式容器: 强调值的排序,序列式容器中的每个元素均有固定的位置 关联式容器: 二叉树结构,各元素之间没有严格的物理上的顺序关系 序列式容器/顺序容器 Sequential Containers 序列式容器...
C++ 模板 (template) C++ 模板概述 模板允许你定义一个可以根据你的用途进行编译的模板。模板是泛型编程的基础,类似于 Java 中的泛型。 模板只有在被调用的时候才会创建,编译时不会被创建,如果模板代码有错误,编译不会出错,但运行会出错 模板不应该被滥用,滥用了会导致可读性太差,有的团队禁止用模板 C++ 提供两种模板机制:函数模板 和 类模板 函数模...
C++ 继承 继承概念 当你创建了一个子类,它会包含父类的一切 派生类是通过对基类进行修改和扩充得到的,在派生类中,可以扩充新的成员变量和成员函数。 派生类拥有基类的全部成员函数和成员变量,不论是 private、protected、public;需要注意的是:在派生类的各个成员函数中,不能访问基类的 private 成员。 继承的格式: class 派生类名:pub...
C++ 枚举 C++ 枚举 枚举量的声明 enum 是 enumeration 的缩写。基本上它就是一个数值集合。不管怎么说,这里面的数值只能是整数。 定义枚举类型的主要目的:增加程序的可读性 枚举变量的名字一般以大写字母开头(非必需) 默认情况下,编译器设置第一个枚举变量值为 0,下一个为 1,以此类推(也可以手动给每个枚举量赋值),且 未被初始化的枚举值的值默认将...
C++ 异常 C++ 异常 throw 抛出异常 try{}catch() 捕获异常 可以抛出任何对象 void test1() { throw "测试!"; } void test2() { throw exception("测试"); } try { test1(); } catch (const char *m) { cout << m &...
C++ 单例模式 Singleton 只允许被实例化一次,用于组织一系列全局的函数或者变量,与 namespace 很像。例子:随机数产生的类、渲染器类。 C++ 中的单例只是一种组织一堆全局变量和静态函数的方法 C++ 实现单例的基本方法: 将构造函数设为私有,因为单例类不能有第二个实例 提供一个静态访问该类的方法:设一个私有的静态的实例,...
class 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,用户定义的类型。 类基础 访问控制符 可见性是一个属于面向对象编程的概念,它指的是类的某些成员或方法实际上是否可见。可见性是指:谁能看到它们,谁能调用它们,谁能使用它们,所有这些东西。 可见性是对程序实际运行方式、程序性能或类似的东西没影响。它只单...
C++ 的智能指针 智能指针本质上是原始指针的包装,当你创建一个智能指针,它会调用 new 并为你分配内存,然后基于你使用的智能指针,这些内存会在某一时刻自动释放。 优先使用 unique_ptr,其次考虑 shared_ptr。 尽量使用 unique_ptr 因为它有一个较低的开销,但如果你需要在对象之间共享,不能使用 unique_ptr 的时候,就使用 shar...
C++ 有用的网站 Cppreference cppreference 是一个在线文档资源,它提供了 C++ (和 C 语言)标准库的全面参考信息。该网站包含了 C++ 标准库组件的描述、各种函数、类、语法及其用法的详细信息,以及示例代码。它广泛被视为 C++ 社区中关于语言特性和标准库的权威参考资源。 cppreference.com 书籍推荐 Essential C++ ...