- 博客(61)
- 收藏
- 关注
原创 实现一个类,计算程序中创建出了多少个对象
假设命名该类为A,那么A类型的对象一定是经过构造函数或拷贝构造的,那么我们就可以分别定义两个静态成员变量,在构造函数和拷贝构造里++变量,这样,每创建一次对象,变量就++一次,自然就好求了。这里用全局变量(count1和count2)也是可以的,但不推荐。在简单的程序里可以使用没问题,但是在项目中不推荐用全局的,因为可能会出现链接冲突的问题,还是用静态成员变量为优。
2023-08-01 17:46:37
407
原创 【C++11】——类的新功能
1. 默认成员函数 2. 类成员变量初始化 3. 强制生成默认函数的关键字default 4. 禁止生成默认函数的关键字delect 5. 继承和多态的final与override关键字 6. 测试案例
2023-07-29 07:00:00
304
原创 【C++11】——右值引用、移动语义
1. 基本概念 1.1 左值与左值引用 1.2右值和右值引用 1.3 左值引用与右值引用 2. 右值引用实用场景和意义2.1 左值引用的使用场景2.2 左值引用的短板 2.3 右值引用和移动语义2.3.1移动构造2.3.2 移动赋值2.3.3 编译器做的优化2.3.4 总结 2.4 右值引用引用左值 2.5 右值引用的其他场景(插入接口)3. 完美转发 3.1 万能引用&& 3.2 forward完美转发在传参的过程中保留对象原生类型属性
2023-07-28 16:17:09
311
原创 【C++11】——列表初始化、声明及STL变化
1. C++11简介 2. 统一的列表初始化 2.1 {}初始化 2.2 initializer_list容器 3. 声明 auto decltype nullptr 4. STL 中的一些变化
2023-07-28 11:19:13
316
原创 【C++11】——auto关键字、范围for与指针控制nullptr
1.auto关键字 1.1 auto简介 1.2 auto使用规则 1.3 auto不能推导的场景 1.4 auto的实际应用价值 2. 范围for 2.1 范围for的语法 2.2 范围for的使用条件 3. 指针空值nullptr
2023-07-27 20:55:34
216
原创 Linux——4linux实用操作
4.1 各类小技巧(快捷键) 4.2 软件安装 4.3 systemctl 4.4 软连接 4.5 日期、时区 4.6 IP地址、主机名 IP地址 主机名 域名解析 配置主机映射 虚拟机配置固定IP 4.7 网络传输 下载和网络请求 端口 4.8 进程管理 4.9 主机状态 4.10 环境变量 环境变量 PATH: $符号 自行设置环境变量 自定义环境变量PATH 4.11 上传、下载 4.12 压缩、解压 压缩格式 tar命令 zip命令压缩文件
2023-06-28 10:00:43
276
原创 Linux——3Linux用户和权限
3.1 认识root用户 root用户(超级管理员) su 和 exit命令 sudo命令 3.2 用户、用户组 3.3 修改权限控制 - chmod 3.4修改权限控制 - chown
2023-06-27 18:45:50
261
原创 Linux——2Linux基础命令
2.1 Linux的目录结构 2.2 Linux命令入门ls命令Home目录和工作目录2.3 目录切换相关命令cd 切换工作目录pwd查看当前工作目录2.4 相对路径、绝对路径和特殊路径符相对路径和绝对路径特殊路径符2.5 创建目录命令mkdir2.6 文件操作命令touch、cat、more命令cp、mv、rm命令2.7 查找命令whichfind——按文件名查找文件find命令 - 通配符find命令 - 按文件大小查找文件
2023-06-27 16:09:17
542
1
原创 Linux——1初识linux
1.1 硬件和软件1.2 初识Linux1.2.1 Linux的诞生1.2.2 LInux内核1.2.3 Linux发行版1.3 虚拟机介绍1.4 VMware WorkStation 安装1.5 在VMware上安装Linux1.6 远程连接Linux系统1.6.1图形化、命令行1.6.2FinalShell
2023-06-26 22:32:06
264
原创 linux——解压和压缩
1.压缩格式 2. tar命令3.tar命令压缩 4. tar解压 5. zip命令压缩文件 6. unzip 命令解压7. 总结
2023-06-26 14:35:04
183
原创 C++——用红黑树封装map和set
1. 前言2. 红黑树模板参数的控制3.模板参数中仿函数的增加4. 红黑树迭代器的实现5. 红黑树的begin()和end() 6. 红黑树的Find查找函数7. 红黑树封装map和set源码7.1 map.h7.2 set.h7.3 test.cpp
2023-06-22 21:42:58
578
原创 高级数据结构——红黑树
1. 红黑树的概念2. 红黑树的性质3. 红黑树6. 红黑树的验证7. 红黑树的删除8. 红黑树与AVL数的比较9. 红黑树的应用10. 完整代码10.1 RBTree.h10.2 test.cpp
2023-06-22 20:57:11
743
原创 高级数据结构——平衡二叉树(AVL树)
1. 底层结构2. AVL数的概念3. AVL树节点的定义4. 基本框架5. AVL树的插入6. AVL树的旋转6.1 左单旋6.2 右单旋6.3 左右双旋6.4 右左双旋7. AVL树的验证8. AVL树的查找9. AVL树的删除10. AVL树的性能11.总代码11.1 AVLTree.h 11.2 Test.cpp
2023-06-22 20:19:06
837
原创 高级数据结构——二叉搜索树
1. 二叉搜索树的概念2. 二叉搜索树的实现 结点类 二叉搜索树的类 2.1默认成员函数2.1.1 构造函数2.1.2 拷贝构造函数2.1.3 赋值运算符重载函数2.1.4 析构函数2.2 中序遍历2.3 insert插入函数2.3.1 非递归实现2.3.2 递归实现2.4 erase删除函数2.4.1 非递归实现2.4.2 递归版本2.5 find查找函数2.5.1 非递归实现2.5.2递归实现3. 二叉搜搜数的应用3.1 k模
2023-06-21 16:17:07
1311
原创 C++——list容器模拟实现
1. list三个基本函数类2. 节点类接口实现2.1 基本框架2.2 构造函数3. 迭代器类接口3.1 正向迭代器3.1.1基本框架3.1.2 默认构造函数3.1.3 构造函数3.1.4 *运算符重载3.1.5 ->运算符重载3.1.6 ++运算符号重载3.1.7--运算符重载3.1.8 !=运算符重载3.1.9 ==运算符重载3.2 反向迭代器4 list类核心接口实现4.1 基本框架4.2 默认成员函数4.2.1 构造函数
2023-06-20 17:27:54
320
原创 C++——vector迭代器失效与深浅拷贝问题
1. vector迭代器失效问题 1.1 insert迭代器失效1.1.1扩容导致野指针 1.1.2意义变了 1.1.3官方库windows下VS和Linux下对insert迭代器失效的处理 1.2 erase迭代器失效 1.2.1 失效原因分析 1.2.2官方库windows下VS和Linux下对erase迭代器失效的处理 1.2.3 测试用例 1.3 迭代器失效总结 2. 深浅拷贝问题
2023-06-20 16:11:15
765
原创 C++——vector容器模拟实现
1. 基本成员函数 2. 默认成员函数 2.1 构造函数 2.2 析构函数 2.3 拷贝构造函数 2.4 赋值运算符重载函数 3. 容器访问相关函数 3.1 operator[ ]运算符重载 3.2 迭代器 3.3 范围for 4. vector空间增长问题 4.1 vector 容量和大小 4.2 vector扩容 4.3 重新定义大小 5. vector插入和删除 5.1 尾插 5.2 插入insert 5.3 尾删 5.4 erase删除 5.5 clear清空数
2023-06-20 11:10:39
323
原创 C++——string容器模拟实现
1. 基本成员变量 2. 默认成员函数 2.1 构造函数 2.2 析构函数 2.3 拷贝构造函数 2.4 赋值运算符重载 3. 容量与大小相关函数 3.1 size 3.2 capacity 4. 字符串访问相关函数 4.1 operator[ ]重载 4.2 迭代器 5. 增加函数接口 5.1 reserve 5.2 resize 5.3 push_back 5.4 append追加字符串 5.5 operator+=5.6 insert插入 6. 删除相关接口
2023-06-20 11:06:43
418
原创 C++——map/mutimap再理解
1. map 1.1 map介绍 1.2 map的构造 1.3 map插入和删除 1.4 map的迭代器 1.5 map[ ]运算符重载 1.6 map的查找find 1.7 map的删除erase 1.8 map的其它函数 1.9 map的总结 2. multimap 2.1 multimap的介绍 2.2 mutimap的使用
2023-06-14 16:10:59
1644
原创 C++——set/multiset再理解
1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 4. set容器 4.1 set的介绍 4.2 set的使用 5. multiset 5.1multiset的介绍 5.2 mutiset的使用
2023-06-14 15:39:49
366
原创 c++——模板深入理解
1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3类模板特化示例 3. 模板总结
2023-06-14 09:56:25
65
原创 C++——stack与queue底层理解,优先级队列、仿函数、容器适配器
一、stack栈容器深入理解 二、queue队列容器深入理解 2.1 queue的概念 2.2 queue的使用 2.3 queue的模拟实现 三、priority_queue的介绍和使用 3.1priority_queue的介绍 3.2priority_queue的使用 3.3priority_queue的模拟实现 四、容器适配器 标准库中stack和queue的底层结构
2023-06-13 22:30:42
675
原创 黑马C++学习笔记——C++编程提高
1.模板 2. STL概念 3.string容器 4.vector容器 5.deqeue容器 6. list容器 7. set容器 8. map容器9. STL——函数对象 10 STL常用算法
2023-06-05 16:10:08
258
原创 C++——vector容器常用接口
1、vector介绍 2. vector的使用 2.1、vector的定义 2.2、vector的遍历 2.2.1 operator[ ] 2.2.2 迭代器 2.2.3 范围for 2.3 vector的空间增长问题 2.3.1size和capacity 2.3.2max_size 2.3.3 reserve 2.3.4 resize 2.4vector的增删查改 2.4.1 push_back和pop_back 2.4.2 insert和erase
2023-06-01 17:22:05
332
原创 C++——string容器常用接口
1. string类的概念 2. string类常用接口说明 2.1、string类的成员函数 constructor构造函数 destructor(析构函数) operator=(赋值) string类对象的容量操作 迭代器 string类的元素访问 string类对象的遍历操作 string类对象的修改操作 2.2 string类非成员函数
2023-06-01 14:52:30
305
原创 C与C++内存管理
1. C/C++内存分布 2. C语言中的动态内存管理方式3. C++内存管理方式4. operator new 与operator delete函数5. new和delete的实现原理6. 定位new表达式(placement-new)7. 常见面试题7.1 malloc/free和new/delete的区别7.2 内存泄漏7.3 如何一次在堆上申请4G的内存
2023-05-30 16:22:48
41
原创 C++——多态再理解
1. 多态的概念 2. 多态的定义及实现 2.1 多态的构成条件 2.2 虚函数及虚函数的重写 2.3 虚函数重写例外 2.4 C++11 override 和 final 2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类 4. 多态原理 5. 单继承和多继承关系 5.1 单继承中的虚函数表 5.2 多继承中的虚函数表 5.3 菱形继承与菱形虚拟继承 6. 继承和多态常见的面试问题
2023-05-30 11:21:55
46
原创 C++——继承再理解
1. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义2. 基类和派生类对象赋值转换3. 继承中的作用域 4. 派生类默认成员函数 5. 继承和友元 6. 继承与静态成员 7. 继承方式 7.1 菱形虚拟继承 7.2 菱形虚拟继承的原理 8. 继承总结
2023-05-29 19:33:53
41
原创 数据结构——八大排序
一、直接插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序递归版本 1.hoare法 2.挖坑法 3.前后指针法 快排优化版本 1.三位数取中 2.小区间优化 非递归版本 快排总结 七、归并排序 递归版本 非递归版本 八、计数排序 九、八大排序总结
2023-05-23 11:26:00
716
原创 数据结构——堆
1. 堆概念及结构 1.1 堆的概念 1.2 堆的结构 2.堆的实现 2.1 创建堆结构 2.2 初始化堆2.3 打印堆 2.4 堆的销毁 2.5 堆元素交换 2.6 堆向上调整算法 2.7 堆向下调整算法 2.8 堆的插入 2.9 堆的删除 2.10 堆的判空 2.11 获取堆的元素个数 2.12 获取堆顶 3. 总代码 3.1 Heap.h 3.2 Heap.c 3.3 Test.c
2023-05-18 17:14:45
254
原创 数据结构——树结构与二叉树
一、树形结构 1. 树的概念 2. 树的特点 3. 树的专有名词 4. 树的表示 二、二叉树 1. 二叉树的概念 2. 特殊的二叉树 3. 二叉树的性质 4. 二叉树的存储结构 5. 二叉树的遍历 6. 计算二叉树的节点数目和叶子节点数目
2023-04-23 17:18:30
386
原创 数据结构——队列
一、队列的概念 二、队列的实现 1. 创建队列 2. 队列初始化 3. 销毁队列 4. 入队 5. 出队6. 判空 7. 获取队列元素个数 8. 获取队列头部 9. 获取队列尾部元素 三、总代码Queue.h Queue.c Test.c
2023-04-22 13:55:04
1896
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人