
C++进阶
文章平均质量分 88
C++的一些进阶语法
残念ing
坚持把偶尔一天,变成每一天
展开
-
详细了解C++11(1)
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中。原创 2024-10-30 18:00:00 · 1506 阅读 · 0 评论 -
C++ 哈希表
顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log_2 N),搜索的效率取决于搜索过程中元素的比较次数理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。原创 2024-10-27 18:13:06 · 1103 阅读 · 0 评论 -
C++ 红黑树模拟实现STL中的map和set
迭代器的好处是可以方便遍历,是数据结构的底层实现与用户透明。如果想要给红黑树增加迭代器,需要考虑以前问题:**1 begin()与end()**STL明确规定,begin()与end()代表的是一段前闭后开的区间,而对红黑树进行中序遍历后,可以得到一个有序的序列,因此:**begin()可以放在红黑树中最小节点(即最左侧节点)的位置,end()放在最大节点(最右侧节点)的下一个位置**,关键是最大节点的下一个位置在哪块?能否给成nullptr呢?答案是行不通的,因为**对end()位置的迭代器进行-原创 2024-10-24 21:20:08 · 372 阅读 · 1 评论 -
C++ 红黑树
红黑树是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个着色方式的限制,红黑树确保么没有一条路径会比其他路径长出两倍(最长路径原创 2024-10-23 15:24:49 · 998 阅读 · 2 评论 -
C++ AVL树
AVL树:二叉搜索树虽然可以缩短查找的效率,但**如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),就可以降低树的高度,从而减少平均搜索长度。1. 它的左右子树都是AVL树2. 左右子树高度之差(简称平衡因子)的绝对值不超过1如果一棵二叉搜索树是高度平衡的,它就是AVL树。原创 2024-10-14 20:38:09 · 1228 阅读 · 2 评论 -
map与set在题目中的运用
希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦(不能私学,谁私学谁是。原创优快云首发,如需要转载请通知。原创 2024-10-13 21:00:00 · 218 阅读 · 0 评论 -
C++ map和set
map中的的元素是键值对map中的key是唯一的,并且不能修改默认按照小于的方式对key进行比较map中的元素如果用迭代器去遍历,可以得到一个有序的序列map的底层为平衡搜索树(红黑树),查找效率比较高Olog2NO(log_2 N)Olog2N支持[]操作符,operator[]中实际进行插入查找。multiset是按照特定顺序存储元素的容器,其中元素是可以重复的。原创 2024-10-13 16:49:33 · 699 阅读 · 1 评论 -
C++ 搜索二叉树
若它的左子树不为空,则左子树所有节点的值都小于根节点的值。若它的右子树不为空,则右子树上所有节点的值都小于根节点的值。它的左右子树也分别为二叉搜索树。时间复杂度:增删查改时间复杂度O(N)插入和删除操作都必须查找,查找的效率代表了二叉搜索树中各个操作的性能。对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。最优情况下,二叉搜索树为完全二叉树(或接近),其平均比较次数为:log_2 N。原创 2024-10-08 10:25:08 · 885 阅读 · 1 评论 -
C++ 关于继承和多态常见的一些问题
继承和多态常见的面试问题——概念题、思考题原创 2024-09-26 18:48:04 · 734 阅读 · 1 评论 -
C++ 多态
基本概念:通俗的讲,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。1、满足虚函数的重写2、调用时要么只能用指针调用虚函数,要么只能用引用调用虚函数。在虚函数的后面写上 =0 ,则这个函数为纯虚函数。**包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化对象。**派生类继承后也不能实例化对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现了接口继承。class Carpublic:public://重写虚函数。原创 2024-09-26 18:18:46 · 1130 阅读 · 3 评论 -
C++ (进阶)继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增强功能,这样产生新的类,被称为派生类。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认知过程。以前我们接触的复用都是函数的复用,继承是类设计层次的复用。public:cout原创 2024-09-06 18:31:42 · 720 阅读 · 0 评论