C++练级干货
文章平均质量分 87
C++干货
自律的阿龙
细水长流,努力幸运共存
展开
-
priority_queue优先级队列(堆)详解。C++经验+1
priority_queue就是用vector 作为 模版,然后里面的数据填充的方法用的是堆算法。所以priority_queue就是堆。只不过是提供了对应接口的堆。不用手动去敲。方法一:默认定义(只指定是什么元素)默认定义:造出来的直接就是一个大顶堆。方法二:定义大顶堆(指定元素以及用什么当模版以及比较函数)上面不是说priority_queue用vector做模版吗?为什么这里我们还要写一遍。原创 2024-09-25 17:49:30 · 645 阅读 · 0 评论 -
二叉搜索树(来学包会) C++经验+1
二叉树都知道,二叉搜索树就是:每个节点的左子树的值全都小于当前节点的值,右子树的值全都大于当前节点的值。要这个树有什么用?1.二叉搜索树的中序遍历是有序的。2.顾名思义就是为了搜索,线性遍历搜索一个值是全部走一遍,而对于二叉搜索树而言,每走一次就能排除一半的结果。所以就是快。当然也会出现一些特例,如下图所示如果一开始插入的数比后面的数都大,那就变成了一串的。如果这样来搜索,和线性遍历也没区别了,所以后面开发出了AVL树和红黑树解决。注意:二叉搜索树的值是不能被更改的!!!!原创 2024-09-25 17:49:10 · 1173 阅读 · 0 评论 -
C++迭代器 iterator详解
它提供了一种访问容器(如列表、集合等)中元素的方法,而无需暴露容器的内部表示。迭代器使得程序员能够以统一的方式遍历不同的数据结构,而无需关心这些数据结构的具体实现细节。类似于指针指向对应的元素并且能对这个元素进行修改和使用。原创 2024-09-22 17:49:40 · 1137 阅读 · 0 评论 -
C++初始化列表详解 + explicit关键字
使用初始化列表可以提升效率。原创 2024-09-21 16:49:36 · 713 阅读 · 0 评论 -
C++友元详解
友元分为友元函数和友元类。友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。原创 2024-09-21 16:49:29 · 376 阅读 · 0 评论 -
C++日期类详解 第二级支线任务
上述代码表示了这次要实现的类,包括了多种运算符的重载,以及构造函数,相似的操作符,我们只实现一个。日期类的析构和拷贝赋值函数不用写用默认的,因为日期类用的都是内置类型,没有动态开辟的空间,所以不用考虑深拷贝的问题。原创 2024-09-20 18:15:29 · 997 阅读 · 0 评论 -
c++类和对象(6个默认成员函数)第二级中阶
/空类之前有说到如果一个类什么都没有是一个空类,但是空类为什么和只有函数的类一样只有1字节的占位符?这就说明了空类只是看着是空,其实其中大有乾坤。顾名思义默认成员函数,那就表示了这些函数如果你没写就自动生成,当然你也可以自己写。只有单个形参,该形参是对本类类型对象的引用(一般常用从const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。class Datepublic:Date(int year = 0, int month = 1, int day = 1)// 构造函数。原创 2024-09-20 12:11:59 · 768 阅读 · 0 评论 -
c++this指针详解 第三级
C++类实例化创建对象,函数是共用的,变量是每个对象独一份的。(第二级内容,类的存储部分)那在函数中要使用成员变量,怎么知道是哪个对象的呢?C++中有一个隐藏彩蛋,在每一个成员函数中都有一个藏着的this指针作为函数的第一参数。this指针就是指向当前调用函数的对象的一个指针,既然是一个指向对象的指针,相对的就可以通过这个指针,获取当前对象的成员变量。this指针的使用public://1、当形参和成员变量同名时,可用this指针来区分//返回对象本身int age;原创 2024-09-11 16:31:50 · 398 阅读 · 0 评论 -
C++类和对象 第二级初阶
将函数的定义和声明都放在类中在头文件中将函数声明在源文件中对函数的实现。注意:定义和声明分离时要指定出是在哪一个类中类的访问限定符c++实现封装的方式:用类把对象的属性(变量)和方法(函数)都放到类中。然后再用访问限定符设置权限,选择性的把部分接口提供给用户。就像淘宝你可以改你自己店铺的图片,但你影响不了网页的整体布局。由权限决定的。【限定符说明】1.public里的接口外部可以用。2.protected 和 private 的接口外部不能使用,区别在于子类。原创 2024-09-11 16:32:43 · 823 阅读 · 0 评论 -
C++入门知识 第一级
1.正常定义//命名空间的普通定义namespace NS1 //NS1为命名空间的名称//在命名空间中,既可以定义变量,也可以定义函数int a;2.嵌套定义//命名空间的嵌套定义namespace NS1 //定义一个名为N1的命名空间int a;int b;namespace NS2 //嵌套定义另一个名为N2的命名空间int c;int d;3.同一名称的命名空间对于一个工程而言可以有许多相同名字的命名空间。但是最终会被整合为1个命名空间。所以同名的空间也。原创 2024-09-10 16:24:31 · 716 阅读 · 0 评论