首页
学习
活动
专区
工具
TVP
发布

C++与Linux的学习之路

专栏成员
87
文章
85540
阅读量
12
订阅数
C++线程库与IO流
https://legacy.cplusplus.com/reference/thread/thread/
有礼貌的灰绅士
2023-06-23
1410
C++特殊类的设计与类型转换
这里主要以封禁构造函数为主,让外部只能通过调用func函数方式去创建对象,func函数的内部是通过new创建的,这里要注意的就是拷贝构造的问题。 赋值重载不用删除,因为需要现有一个对象才能赋值给另一个对象,上面的代码只会创建出堆上的对象。 方法二:
有礼貌的灰绅士
2023-06-14
2400
C++智能指针
func函数中在堆中申请了资源,在func函数结束前也要释放资源,又因为异常的原因,所以抛异常的前面还需要再加一次资源释放,这非常的不方便,代码看起来也很差劲。 并且new本身也会抛异常,如果都抛异常了怎么办,也很容易导致内存泄漏。 所以这里就有了智能指针,这是大体思路:
有礼貌的灰绅士
2023-06-14
1520
C++异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
有礼貌的灰绅士
2023-06-14
2460
Linux——多线程互斥
这里是以微妙做单位进行休眠的。 假设有1000张火车票,一共四个接口在抢,最后我们要看到什么现象呢? 因为多个线程进行交叉执行。 多个线程交叉执行本质:就是让调度器尽可能的频繁发生线程调度与切换。 线程一般在什么时候发生切换?当时间片到了,来了更高优先级的线程,线程等待的时候。 那么线程是什么时候检测上面的问题?是从内核态切换到用户态的时候,线程要对调度状态进行检测,如果可以,就直接发生线程切换。
有礼貌的灰绅士
2023-06-14
4710
Linux——多线程
这里也能解释为什么对于常量字符串类型为什么不能修改了,因为要修改的时候会从虚拟地址转化成物理地址,然后检查权限是否可以修改等等。
有礼貌的灰绅士
2023-06-14
8980
C++11常用的一部分新特性
C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自 定义的类型,使用初始化列表时,可添加等号(=),也可不添加。
有礼貌的灰绅士
2023-06-14
3900
C++STL——哈希
在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到
有礼貌的灰绅士
2023-06-14
4880
Linux——进程信号
生活中的信号:红绿灯,手机的来电通知等。 为什么这些是信号呢?因为我们知道这些信号的意义代表着什么。 例如:红绿灯 有人教育过我们,让我们的大脑记住了红绿灯属性对应的行为。 但是,我们就算知道这个信号,也不一定要立刻去处理,因为可能正在做另一间更重要的事情。 所以我们也会有对应的三个动作: 默认动作(看到红灯停),自定义动作(看到红灯不是立刻停下,而而是后退一步或者是其他操作),忽略动作(看到红灯不停)。
有礼貌的灰绅士
2023-05-10
2.7K0
Linux进程通信——共享内存
两个进程的PCB创建虚拟地址空间然后映射到物理内存中,每个进程因为是独立的,所以在物理内存中的地址也不同。 那么共享内存是怎么做到的呢? 首先先在物理内存中申请一块内存。 然后讲这块内存通过页表映射分别映射到这两个进程的虚拟地址空间内,让这两个进程都能看到这块内存。(这里也称为进程和共享内存挂接) 最后如果不想通信了:
有礼貌的灰绅士
2023-05-03
5.7K0
C++STL——map与set的模拟实现
map和set的底层都是由红黑树实现的。 所以这里将上次实现的红黑树插入拿来用。 首先想一想,搜索二叉树不能修改值,因为会破坏整棵树的平衡。 set与map的部分源码:
有礼貌的灰绅士
2023-04-27
5340
数据结构——红黑树
概念: 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。
有礼貌的灰绅士
2023-04-27
3630
C++——AVL树
二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。 因此,两位苏联的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。
有礼貌的灰绅士
2023-04-27
2180
LeetCode——前K个高频单词
给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。
有礼貌的灰绅士
2023-04-27
1890
C++STL——map与set介绍及使用
之前我们学的list,vector等等是序列式容器,这里的set和map和之后的哈希表都是关联式容器,比如说搜索二叉树我们想插入一个值,不能随意的插入,因为每个数都是有关联的,需要找到准确位置才能进行插入。
有礼貌的灰绅士
2023-04-17
3000
LeetCode——二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1:
有礼貌的灰绅士
2023-04-17
1710
LeetCode——根据二叉树创建字符串与二叉树的最近公共祖先
给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。
有礼貌的灰绅士
2023-04-17
1560
LeetCode——二叉树的非递归遍历
原题链接:https://leetcode.cn/problems/binary-tree-preorder-traversal/
有礼貌的灰绅士
2023-04-17
2370
LeetCode——遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1:
有礼貌的灰绅士
2023-04-17
2130
牛客——二叉树搜索树转换成排序双向链表
这道题要求空间复杂度为O(1),如果没有这个条件可以创建一个vector将所有结点放进去之后进行操作。 所以这道题的思路可以用三叉链的方法,就是一个结点可以多出一个指向父节点的指针。 我们创建出一个指针front,这个指针指向的是中序遍历中的指针的上一个位置,用于前后进行链接。 用递归。
有礼貌的灰绅士
2023-04-17
1000
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档