c++
文章平均质量分 70
苏枍
这个作者很懒,什么都没留下…
展开
-
C++中的野指针和内存泄漏问题
文章目录野指针问题什么是野指针野指针问题成因内存泄漏智能指针野指针问题什么是野指针在c++中,使用指针是需要解引用去访问一块内存地址的。当一个指针变量指向的地址是非法地址时,就会出现野指针问题。一般我们在写代码的时候,会对指针变量有一个判空处理,但是对于野指针时,是不会被 ‘ ptr == nullptr ’ 中识别出来的。会导致在接下来的代码逻辑中,造成非法访问,异常,导致进程崩溃退出等等的问题。野指针问题成因野指针问题也是一个在实际代码工作中很常见的一个问题,也会不同的情况导致野指针问题出现:原创 2021-11-18 19:27:10 · 648 阅读 · 0 评论 -
基于C++的高并发内存池
这里写目录标题内存池内存碎片问题申请效率的问题malloc概述并发内存池的设计概述threadcacheTLScentralcachepagecache向系统申请内存基数树系统测试内存池内存池是一种动态分配与管理技术。内存碎片问题申请效率的问题malloc概述并发内存池的设计概述threadcacheTLScentralcachepagecache向系统申请内存基数树系统测试...原创 2021-07-23 23:10:39 · 374 阅读 · 1 评论 -
C++ 简单实现红黑树的插入
文章目录红黑树简介红黑树的特点红黑树的插入红黑树简介红黑树是在AVL树的基础上做出一些改变。都是在插入和删除时,对二叉树进行旋转来保证二叉树的平衡。从而保证高效的查找效率。红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树。后来才被修改为如今的“红黑树”。红黑树不必严格遵守高度差为1, 红黑树可以容许最高高度不超过最低高度的二倍。这样即使我们需要搜索一个最坏的情况。也只需要搜索"二倍的以二为底n的对数"次 , n为二叉树的节点个数。红黑树的特点红黑树节点分为两个颜色原创 2021-06-14 21:03:15 · 353 阅读 · 3 评论 -
C++实现 AVL树
文章目录AVL树简介AVL树的旋转整体代码实现AVL树简介AVL树是 “ 搜索 平衡 二叉 树” ,我们知道 AVL树 来自 搜索 树, 我们知道 搜素树可以有效的提高数据的查找效率, 但是如果我们创建搜索树时,数据接近有序,搜索树就会退化成单支,此时我们查找的时间复杂度依然会是O(n)。因此, 俄罗斯的两位数学家发明了AVL树解决了这个问题,AVL树的命名也是由两位数学家的名字缩写得来。AVL树的特点是, 树中,任意一个节点的左右子树的高度之差不大于1。 这样就避免了搜索树退化成单支的问题。当A原创 2021-06-04 23:44:35 · 410 阅读 · 1 评论 -
linux下基于阻塞队列的生产者消费者模型
这里写目录标题锁生产者消费者模型代码实现锁生产者消费者模型代码实现原创 2021-05-31 11:16:15 · 133 阅读 · 0 评论 -
ifndef和pragma once的作用与区别
文章目录ifndefpragma once区别ifndefifndef是c/c++语言中支持的宏定义。 格式大体如下:#ifndef __X__#define __X__ /*...*/#endif“ifndef”是“if not define” 的缩写。 作用就和字面意思一样。如果没有定义 则定义。这样通过宏定义来避免一个文件被多次编译。但是使用宏定义会有宏名冲突的问题,例如类似这样的#define X 3#define X 4这里对X的宏定义重复进行,这样是会编译出错的。原创 2021-05-23 02:15:27 · 508 阅读 · 0 评论 -
关键字const——const char*和char* const
文章目录概述const char* 和char* constdefine 和 const概述关键字const一般用来修饰定义常量。使用const修饰的变量就不能被更改了。这是因为在编译时,编译器不会为被const修饰了的变量分配储存空间。而是直接保存在符号表中。这样在使用const修饰的变量时,也没有了保存和访问内存的操作。效率也会更高一点点。这就是const关键字的大体上的作用。一般来说我们定义的变量用const修饰是没有区别的,例如int const a=2;const int b=2;原创 2021-04-03 16:29:58 · 2128 阅读 · 1 评论