![](https://img-blog.csdnimg.cn/45c97f17137449cb9a0b2155c27e3c58.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++/c#
文章平均质量分 86
C/C++ 常见特性介绍
cat_fish_rain
无闻之辰黑暗凝,万籁寂静月光稀。 待到黎明破晓至,曙光照耀大地归。
展开
-
C++ 常见面试题
每经过一个路由器,TTL的值就会减少1,当TTL值减为0时,数据报会被丢弃,并发送一个ICMP超时消息给数据报的源地址,告知数据报的丢失。这是因为在这些架构中,处理器一次读取内存的数据宽度通常是固定的,如果访问的数据没有按照所需的对齐方式存储,就会需要多次内存访问,增加了访问内存的开销。因此,通过内存对齐,可以减少内存访问次数,提高程序的执行效率。通过将版本号与数据关联在一起,并在数据更新时进行版本号的检查,乐观锁实现了一种乐观的做法,即假设在大多数情况下并发冲突不会发生,以提高并发性能。原创 2023-07-18 10:36:45 · 621 阅读 · 0 评论 -
C++ 图的遍历
。请思考树以前是怎么遍历的,此处可以直接用来遍历图吗?为什么?问题:如何防止节点被重复遍历。原创 2023-07-03 21:46:47 · 1105 阅读 · 1 评论 -
C++ 数据结构B 树
当数据量很大时,为了能够方便管理数据,提高数据查询的效率,一般都会选择将数据保存到数据库,因此数据库不仅仅是帮助用户管理数据,而且数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,该数据结构就是索引。树的性质,需要对该节点进行分裂:申请新节点找到该节点的中间位置将该节点中间位置右侧的元素以及其孩子搬移到新节点中,将中间位置元素以及新节点往该节点的双亲节点中插入,即继续4。所有关键字都出现在叶子节点的链表中,且链表中的节点都是有序的。原创 2023-07-04 20:55:59 · 682 阅读 · 1 评论 -
C++ 数据结构图(1)
如果边带有权值,并且两个节点之间是连通的,上图中的边的关系就用权值代替,如果两个。用邻接矩阵存储图的有点是能够快速知道两个顶点是否连通,缺陷是如果顶点比较多,边比。对应的邻接表所含结点的个数,就是该顶点的出度,也称出度表,要得到vi。顶点的入度,必须检测其他所有顶点对应的边链表,看有多少边顶点的dst。的一条单向通路,即 Path(x, y)是有方向的。成为系数矩阵,比较浪费空间,并且要求两个节点之间的路。因为节点与节点之间的关系就是连通与否,即为。邻接表:使用数组表示顶点的集合,节点与节点之间的关系。原创 2023-07-02 22:13:56 · 199 阅读 · 1 评论 -
C++ 实现并查集
个人来自不同的学校,起先互不相识,每个学生都是一个独立的小团体,现给这些学生进行编号:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};给以下数组用来存储该小集体,数组中的数字代表:该小集体中具有成员的个数。毕业后,学生们要去公司上班,每个地方的学生自发组织成小分队一起上路,于是:西安学生小分队s1={0,6,7,8}沿着数组表示的树形关系往上一直找到树的根,如果根相同表明在同一个集合,否则不在。遍历数组,数组中元素为负数的个数即为集合的个数。担任队长,负责大家的出行。个人,总共两个朋友圈。原创 2023-07-02 13:26:51 · 1986 阅读 · 0 评论 -
C++ 实现跳表
skiplist本质上也是一种查找结构,用于解决算法中的查找问题,跟平衡搜索树和哈希表的价值是一样的,可以作为key或者key/value的查找模型。那么相比而言它的优势是什么的呢?这么等我们学习完它的细节实现,我们再来对比。skiplist是由发明的,最早出现于他在1990年发表的论文《对细节感兴趣的同学可以下载论文原文来阅读。skiplist,顾名思义,首先它是一个list。实际上,它是在有序链表的基础上发展起来的。如果是一个有序的链表,查找数据的时间复杂度是O(N)。原创 2023-07-02 20:12:56 · 177 阅读 · 1 评论 -
C++ STL --map,set
1. multiset是按照特定顺序存储元素的容器,其中元素是可以重复的。2. 在multiset中,元素的value也会识别它(因为multiset中本身存储的就是组成的键值对,因此value本身就是key,key就是value,类型为T). multiset元素的值不能在容器中进行修改(因为元素总是const的),但可以从容器中插入或删除。3. 在内部,multiset中的元素总是按照其内部比较规则(类型比较)所指示的特定严格弱排序准则进行排序。原创 2023-07-01 11:48:53 · 93 阅读 · 0 评论 -
C++ 二叉搜索树
二叉树在前面C数据结构阶段已经讲过,本节取名二叉树进阶是因为:1.先铺垫二叉搜索树,而二叉搜索树也是一种树形结构2.3.,在前面讲解,且时间长容易忘4.因此本节借二叉树搜索树,对二叉树部分进行收尾总结。原创 2023-07-01 15:48:35 · 144 阅读 · 0 评论 -
C++ STL --哈希表
在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到$log_2N$,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同,本文中只对和进行介绍,和学生可查看文档介绍。是存储键值对的关联式容器,其允许通过keys。原创 2023-07-01 22:44:43 · 2224 阅读 · 1 评论 -
C++ STL Stack和Queue
讲述Stack,Queue相关用法。2. queue的介绍和使用 2.1 queue的介绍 https://cplusplus.com/reference/queue/queue/力扣 3.1 priority_queue的介绍和使用 3.1 priority_queue的介绍 ht原创 2023-06-28 23:01:20 · 81 阅读 · 1 评论 -
C++ 封装性一文搞定(二)
默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。原创 2023-06-23 13:22:07 · 128 阅读 · 2 评论 -
C++ 封装性一文搞定(一)
C++ 封装性原创 2023-06-22 22:19:11 · 220 阅读 · 2 评论 -
C++ 封装性一文搞定(三)
定义时不添加static关键字,类中只是声明3.类静态成员即可用。原创 2023-06-23 17:04:03 · 90 阅读 · 2 评论 -
C++ 继承性一文搞定
机制是面向对象程序设计。原创 2023-06-22 13:20:39 · 101 阅读 · 1 评论 -
C/C++ 内存管理一文搞定
它接受两个参数,第一个参数是指向已分配内存的指针,第二个参数是要重新分配的大小。如果新的大小大于原来的大小,那么realloc会分配更大的内存块,并将原来的数据复制到新的内存块中。它接受两个参数,第一个参数是要分配的元素个数,第二个参数是每个元素的大小。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现。sizeof和strlen是C语言中的两个不同的函数,它们的作用和用法也不同。工程前期良好的设计规范,养成良好的编码规范,申请的内存空间记着匹配的去释放。原创 2023-06-20 22:06:20 · 111 阅读 · 0 评论 -
C++ 类型转换全文超级详细的
再c语言中,如果复制运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接受返回值 的类型不一样,就需要发生类型转换。C语言有两种类型转化,隐式类型转换或者显示类型转换。否还有其他不同的方法达到同一目的,如果非强制类型转换不可,则应限制强制转换值的作用。显式类型转换将所有情况混合在一起,代码不够清晰,因此C++,每次使用强制类型转换前,程序员应该仔细考虑是。提出了自己的类型转化风格,注意。的简称,即:运行时类型识别。域,以减少发生错误的机会。中类型转化的应用场景。原创 2023-06-19 21:40:20 · 135 阅读 · 1 评论 -
C++ 多态一文搞定
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了 Person。Person对象买票全价,Student对象买票半价。那么在继承中要。原创 2023-06-21 22:32:26 · 74 阅读 · 1 评论 -
C++ 之特殊的类设计
信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再 通过这个单例对象获取这些配置信息,这种方式简化了在复杂环境下的配置管理。文件啊等等,而有可能该对象程序运行时不会用到,那么也要在程序一开始就进行初始化,只声明不定义:不定义是因为该函数根本不会调用,定义了其实也没有什么意义,不写。缺点:可能会导致进程启动慢,且如果有多个单例类对象实例启动顺序不确定。就是说不管你将来用不用,程序启动时就创建一个唯一的实例对象。提供一个静态的成员函数,在该静态成员函数中完成堆对象的创建。原创 2023-06-20 10:50:12 · 87 阅读 · 1 评论 -
C++的IO流详解
类型的算法,一般都需要循环输入输出:严格按照题目的要求进行,多一个少一个空格都不行。空格和回车都可以作为数据之间的分格符,所以多个数据可以在一行输入,也可以分行输。使用文件流对象的成员函数打开一个磁盘文件,使得文件流对象和磁盘文件之间建立联系。类的三个不同的对象,因此这三个对象现在基本没有区别,只是应用场景不。语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?即是流动的意思,是物质从一处向另一处流动的过程。类型的对象,那么这里可以做逻辑条件值,源自于。的概念,然后解析缓冲区的内容,返回一个。原创 2023-06-20 16:37:48 · 156 阅读 · 1 评论 -
C++ 11 -智能指针
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。原创 2023-06-18 20:37:46 · 2263 阅读 · 3 评论 -
C++ 11新特性(二)
接上第一部分继续讲解c++ 11 新特性序号顺序接上这里对文章进行总结:剩下还有两部分包装器和函数的重载我们将在下一期的进行讲解。原创 2023-06-15 21:54:23 · 142 阅读 · 3 评论 -
int *p= new int();and int p=new int;的区别
和int *p=new int()都可以用于动态分配内存,但前者分配的内存未初始化,后者分配的内存已初始化为0。分配了一个未初始化的int类型变量,并将其地址赋给指针p。这意味着p指向的内存中的值是未定义的,可能是任意值。如果您尝试使用p指向的值,可能会导致未定义的行为。int *p=new int()分配了一个初始化为0的int类型变量,并将其地址赋给指针p。在C++中,int *p=new int;和int *p=new int()都是用于动态分配内存的语句,但它们之间有一些微妙的差别。原创 2023-06-18 20:42:36 · 778 阅读 · 0 评论 -
C++ 11 (三)
在C++11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了,使得C++在并行编程时不需要依赖第三方库,而且在原子操作中还引入了原子类的概念。要使用标准库中的线程,必须包含< thread >头文件。注意:1. 线程是操作系统中的一个概念,线程对象可以关联一个线程,用来控制线程以及获取线程的状态。2. 当创建一个线程对象后,没有提供线程函数,该对象实际没有对应任何线程。原创 2023-06-17 23:01:07 · 175 阅读 · 1 评论 -
C++ 11 新特性(一)
在2003年C++标准委员会曾经提交了一份技术勘误表简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。本文较为全面的讲解的cpp11 新特性的原创 2023-06-13 20:16:27 · 264 阅读 · 3 评论 -
关于如何利用vscode 包含.h 文件的问题
vscode 在C++ 头文件.h 文件设置的时候经常导入头文件错误。原创 2023-03-17 21:59:14 · 6486 阅读 · 1 评论 -
C++ 正则表达式
场景的C++ 正则表达式的规则和应用原创 2023-05-20 13:46:40 · 471 阅读 · 2 评论 -
C++ 中指针悬挂和内存泄漏的问题
被存储到ptr 中,通过解引用打出x 的 ,但是由于x 实在func()中的局部变量,函数返回之后xd的生命周期结束,其内存空间被释放。这也就意味着,ptr 所指向的内存空间已经被释放了,访问该内存空间导致未定义的行为,输出的值是不确定的。内存泄漏是指在程序运行过程中,动态分配的内存没有被正确的释放,导致这些内存没有被正确的释放,导致这些内存不可再用,最终造成系统崩溃,或者其他严重的问题。这样,每次函数调用结束时,动态分配的内存就会被正确地释放,从而避免内存泄漏问题。在修改后的代码中,我们在函数。原创 2023-05-03 11:52:14 · 387 阅读 · 2 评论 -
c++ 常见的异常处理方法
常见的c,c++ 的异常处理的机制以及方法。原创 2023-06-12 22:10:52 · 1767 阅读 · 3 评论 -
简单的图的实现,遍历
图的简单实现,以及广度优先遍历和深度优先遍历原创 2023-06-10 12:47:37 · 139 阅读 · 2 评论