C++
文章平均质量分 67
详细介绍C++封装继承和多态特性、泛型编程以及STL模板库
Bright-SKY
知行合一,落地为王
展开
-
C++ STL 算法
目录知识点1【函数对象】(仿函数)知识点2【谓词】知识点3【内建函数对象】知识点4【适配器】1、函数对象适配器2、取反适配器3、函数指针适配器4、成员函数适配器知识点5【常见遍历算法】for_each算法transform 算法知识点6【常见查找算法】1、find 找具体的值2、find_if 按条件查找3、adjacent_find查找相邻重复元素4、binary_search二分查找(源数据必须有序)5、count统...原创 2022-05-17 23:17:45 · 752 阅读 · 0 评论 -
C++ STL map 与 multimap 容器
知识点1【map容器】map容器 键值 和 实值 是分开的Map 的特性是,所有元素都会根据元素的键值自动排序。map容器 键值必须唯一。#include <iostream>#include <map>using namespace std;void printMapIntString(map<int,string> &m){ map<int,string>::iterator it=m.begin();原创 2022-05-17 10:33:33 · 98 阅读 · 0 评论 -
C++ STL set 与 multiset 容器
知识点1【set容器】set 的特性是。所有元素都会根据元素的键值自动被排序。set容器:键值 和 实值 是同一个值。不是分开的set容器的键值 必须是唯一的。set容器 一旦插入值 不允许修改容器的值(set容器的迭代器 是只读迭代器)#include <set>using namespace std;/*3.7.2.1 set 构造函数set<T> st;//set 默认构造函数:mulitset<T> mst; //multi原创 2022-05-17 10:27:48 · 87 阅读 · 0 评论 -
C++ STL 链表容器
知识点1【list 容器概念】链表容器list容器的迭代器是 双向迭代器。#include <iostream>#include <list>using namespace std;/*3.6.4.1 list 构造函数list<T> lstT;//list 采用采用模板类实现,对象的默认构造形式:list(beg,end);//构造函数将[beg, end)区间中的元素拷贝给本身。list(n,elem);//构造函数将 n 个 elem 拷原创 2022-05-17 10:20:10 · 738 阅读 · 0 评论 -
C++ STL 栈与队列
知识点1【stack容器】(栈容器)stack容器没有迭代器。#include<stack>using namespace std;/*stack<T> stkT;//stack 采用模板类实现, stack 对象的默认构造形式:stack(const stack &stk);//拷贝构造函数3.4.3.2 stack 赋值操作stack& operator=(const stack &stk);//重载等号操作符3.4.3.3 s.原创 2022-05-17 10:05:21 · 195 阅读 · 0 评论 -
C++ STL deque容器
知识点1【deque容器概念】(了解)deque双端动态数组deque容器没有容量的概念。#include <iostream>#include <deque>using namespace std;/*3.3.3.1 deque 构造函数deque<T> deqT;//默认构造形式deque(beg, end);//构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem);//构造函数将 n 个 elem .原创 2022-05-17 10:00:50 · 153 阅读 · 0 评论 -
C++ STL vector容器
知识点1【vector容器概念】单端动态数组vector的迭代器为随机访问 迭代器vector的“未雨绸缪”机制:void test01(){ vector<int> v1; cout<<"size = "<<v1.size()<<endl; cout<<"capacity = "<<v1.capacity()<<endl; int i=0; for(i.原创 2022-05-16 23:28:22 · 125 阅读 · 0 评论 -
C++ STL string容器
知识点1【构造函数】#include <string>string 构造函数#include <iostream>#include <string>using namespace std;/*string 容器常用操作3.1.2.1 string 构造函数string();//创建一个空的字符串 例如: string str;string(const string& str);//使用一个 string 对象初始化另一个 string.原创 2022-05-16 23:17:26 · 73 阅读 · 0 评论 -
STL标准模板库-概念
知识点1【STL的概述】(了解)STL(Standard Template Library,标准模板库。STL提供了核心的容器、算法、迭代器。(3大核心组件)STL的六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器。六大组件:容器:存放数据算法:操作数据迭代器:算法 借助迭代器 操作容器。 迭代器和容器 是一一对应的.仿函数:为 算法 提供策略。适配器:为算法提供更多的参数接口空间配置器:为容器和算法分配空间的(知道就行)补充描述:1、算法:算原创 2022-05-16 23:14:49 · 187 阅读 · 0 评论 -
C++异常
异常处理就是处理程序中的错误。所谓错误是指在程序运行的过程中发生的一些异常事件 (如:除0溢出,数组下标越界,所要读取的文件不存在, 空指针,内存不足等等)原创 2022-05-16 22:58:23 · 221 阅读 · 0 评论 -
C++_类型转换
目录知识点1【上下行转换】知识点2【静态转换(static_cast)】1、上行转换安全(支持)2、下行转换 不安全 (支持)3、基本类型指针、引用 转换(不支持)4、不相关 的类的指针、引用之间的转换(不支持)知识点3【动态转换(dynamic_cast)】1、上行转换安全(支持)2、下行转换 不安全 (不支持)3、基本类型指针、引用 转换(不支持)4、不相关 的类的指针、引用之间的转换(不支持)知识点4【常量转换(const_cast)】1、...原创 2021-07-25 22:36:26 · 301 阅读 · 4 评论 -
C++_模板
目录知识点1【函数模板的概述】(了解)1、函数模板概述2、函数模板 会自动推导 参数的类型3、函数模板 可以显示指定T的类型4、函数模板 和 普通函数同名5、提供具体化的模板知识点2【类模板】(了解)1、类模板的定义2、类模板的成员函数 在类外实现3、类模板作为函数的参数4、类模板 派生 普通类5、类模板 派生 类模板6、类模板 头文件和源文件 分离问题(.hpp)知识点3【类模板和友元】(了解)1、普通函数 作为 类模板 的友元2、函数模原创 2021-07-25 22:28:07 · 642 阅读 · 10 评论 -
C++_多态
目录知识点1【多态的概述】(了解)1、多态的分类:静态多态、动态多态2、虚函数的引入3、动态多态(重要)4、虚函数的原理(了解)知识点2【纯虚函数】(了解)知识点3【重载、重定义(隐藏)、重写(覆盖)】(了解)知识点4【多态案例】(了解)知识点5【虚析构函数】(了解)1、知识点的引入2、虚析构(解决上述问题)3、虚析构的原理(了解)总结:虚函数和虚析构的区别?虚函数:虚析构:知识点6【纯虚析构函数】(了解...原创 2021-07-25 21:20:41 · 258 阅读 · 4 评论 -
C++_继承
目录知识点1【继承的概述】(了解)知识点2【继承方式】(了解)1、派生类定义格式2、构造函数的顺序3、vs查看类的内部结构(了解)知识点2【子类 调用 父类的有参构造】(重要)知识点3【子类与父类的成员 同名】(重要)知识点4【子类 重定义 父类的成员函数】(重要)重定义:有继承,子类 重定义 父类的成员函数(非虚函数)知识点5【多继承】(了解)知识点6【菱形继承】(了解)知识点7【虚继承】(了解)1、虚继承:用virtual修饰继承方式2、虚继.原创 2021-07-18 22:50:00 · 169 阅读 · 8 评论 -
C++_运算符重载
目录知识点1【运算符重载概述】(了解)运算符重载分析步骤:1、重载运算符2、重载>>运算符3、重载==运算符4、自增自减(++/--)运算符重载5、重载=赋值运算符(类中有指针成员 才需要重载=)6、总结:如果类中有指针成员7、重载 函数调用运算符 () (了解)8、不要重载&& || 用户没办法实现短路特性 (重要)9、不能重载的运算符知识点2【运算符重载案例】(重要)知识点1【运算符重载概述】(了解)运算符重载,就是原创 2021-07-18 17:42:43 · 288 阅读 · 1 评论 -
C++_类的高级应用
知识点1【初始化列表】(了解)1、初始化列表的初识class Data{private: int m_a; int m_b;public: //初始化列表 先于 构造函数执行 Data(int a, int b):m_a(a),m_b(b) { //m_a = a; //m_b = b; cout<<"构造函数"<<endl; } void showData(voi原创 2021-07-18 16:59:35 · 608 阅读 · 0 评论 -
C++_类和对象
知识点1【类的概述】(了解)类的封装:将数据和方法封装在一起 加以权限区分 用户只能通过公共方法 访问私有数据。1、知识点引入(C语言的数据 和 方法 是独立)struct Person{ char name[32];};struct Cat{ char name[32];};void PersonEat(Person *p){ cout<<p->name<<"在吃饭"<<endl;}void CatEat原创 2021-07-08 16:40:39 · 229 阅读 · 0 评论 -
C++对C语言的扩展
目录知识点1【c++的概述】(了解)1、第一个c++程序:2、面向过程和面向对象1、面向过程:2、面向对象:3、c++的三大特性(重要)封装继承多态知识点2【c++对c的扩展之::】(了解)1、作用域运算 ::1、如果局部和全局同名 可以直接访问全局变量知识点3【c++对c的扩展之命名空间】(了解)1、命名空间的定义2、命名空间只能全局范围内定义(以下错误写法)3、命名空间可嵌套命名空间4、命名空间是开放的,可以随时把新...原创 2021-07-07 22:41:02 · 985 阅读 · 1 评论