摘要: 📕处理多继承的坑 理解虚基类和虚继承 **虚基类: ** 被虚继承的类,就称为虚基类。 virtual作用: 1.virtual修饰了成员方法是虚函数。 2.可以修饰继承方式,是虚继承。被虚继承的类就称为虚基类。 vfptr:一个类有虚函数,这个类生成的对象就有vfptr,指向vftable。 v 阅读全文
posted @ 2022-05-12 20:20 D-booker 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 📕深入掌握OOP最强大的机制 1. 继承的基本意义 类与类之间的关系:①组合:a part of ... 一部分的关系;②继承: a kind of ... 属于同一种的关系; 继承的本质:a. 代码的复用(相同的特征行为抽象出来作为基类) 三种继承关系以及各种注意点看初识C++中的继承笔记; 访 阅读全文
posted @ 2022-05-12 19:37 D-booker 阅读(315) 评论(0) 推荐(2) 编辑
摘要: 📕unique_lock详解 一、unique_lock取代lock_guard unique_lock是个类模板**,实际应用中,一般lock_guard(推荐使用)**;lock_guard取代了mutex和的lock()和nulock(), 而unique_lock也取代mutex和的loc 阅读全文
posted @ 2022-05-12 12:26 D-booker 阅读(1389) 评论(0) 推荐(2) 编辑
摘要: 📕互斥量和死锁 一、数据共享问题 首先,我们看看多线程的执行顺序: void TextThread() { cout << "我是线程:" << this_thread::get_id() << endl; //线程内操作代码 cout << "线程" << this_thread::get_id 阅读全文
posted @ 2022-05-12 12:11 D-booker 阅读(175) 评论(0) 推荐(0) 编辑
摘要: title: 左叶子之和 📃 题目描述 题目链接:: 左叶子之和 🔔 解题思路 方法一:dfs 注意点:①什么样的才是叶子节点:左右子节点为空;②什么样的才是左的叶子节点:左右子节点为空,同时是父节点的左孩子! 所以加个标志,知道这个节点是不是左孩子即可; class Solution { pu 阅读全文
posted @ 2022-05-12 00:45 D-booker 阅读(46) 评论(0) 推荐(0) 编辑
摘要: title: 二叉树的右侧视图 📃 题目描述 题目链接:二叉树的右侧视图、相同题目 🔔 解题思路 方法一:队列层次遍历(bfs) class Solution { public: vector<int> rightSideView(TreeNode* root) { vector<int> re 阅读全文
posted @ 2022-05-11 23:02 D-booker 阅读(40) 评论(0) 推荐(0) 编辑
摘要: title: 二叉树最底层最左边的值 📃 题目描述 题目链接:二叉树最底层最左边的值 、相同的题目 🔔 解题思路 方法一:采用队列进行层次遍历,每次将每层的第一个值放保存在答案,遍历完该二叉树,那必然就是最底层最左边的节点; 方法二:方法一中的需要消耗o(n)的空间,想一下,有没有不需要消耗这个 阅读全文
posted @ 2022-05-11 21:57 D-booker 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 📕线程传参详解 一、传递临时对象作为线程参数 1.1要避免的陷阱 直接看代码: #include <iostream> #include <thread> using namespace std; void myPrint(const int &i, char* pmybuf) { //如果线程从 阅读全文
posted @ 2022-05-11 17:37 D-booker 阅读(765) 评论(2) 推荐(1) 编辑
摘要: 📕线程启动、结束、创建方法 一、线程启动的开始 程序运行起来:生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行;那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行; 整个进 阅读全文
posted @ 2022-05-11 17:14 D-booker 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 📕并发基本概念以及实现、进程、线程基本概念 一、并发、进程、线程的基本概念和综述 这些详细概念具体去看os笔记; 1.1 并发 两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务; 以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒 阅读全文
posted @ 2022-05-11 17:00 D-booker 阅读(186) 评论(0) 推荐(0) 编辑