<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Bit_qnw的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Bit_qnw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Bit_qnw]]></copyright><item><title><![CDATA[C++11——智能指针]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/143120945</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/143120945</guid><author>Bit_qnw</author><pubDate>Tue, 22 Oct 2024 21:24:37 +0800</pubDate><description><![CDATA[主要介绍C++11中新引进的三个智能指针：unique_ptr、shared_ptr、weak_ptr 的使用相关。]]></description><category></category></item><item><title><![CDATA[C++11——异常]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142928439</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142928439</guid><author>Bit_qnw</author><pubDate>Tue, 15 Oct 2024 13:00:00 +0800</pubDate><description><![CDATA[有关C++11中的异常使用。]]></description><category></category></item><item><title><![CDATA[C++11——lambda表达式]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142906023</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142906023</guid><author>Bit_qnw</author><pubDate>Mon, 14 Oct 2024 20:44:53 +0800</pubDate><description><![CDATA[有关C++11中的lambda表达式的使用]]></description><category></category></item><item><title><![CDATA[C++11——右值引用]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142854234</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142854234</guid><author>Bit_qnw</author><pubDate>Sat, 12 Oct 2024 21:55:33 +0800</pubDate><description><![CDATA[有关C++11中的右值引用介绍，同时介绍并区别左值引用两者的区别以及运用的场景]]></description><category></category></item><item><title><![CDATA[C++进阶——哈希]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142764200</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142764200</guid><author>Bit_qnw</author><pubDate>Thu, 10 Oct 2024 00:24:05 +0800</pubDate><description><![CDATA[哈希结构是一种可以不经过任何比较，一次直接从表中得到要搜索的元素的数据结构。如果构造一种存储结构，通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射关系，那么在查找时通过该函数可以很快找到该元素。通过哈希构造的方式称为为哈希(散列)方法，哈希方法中使用的转换函数称为哈希(散列)函数，构造出来的结构称为哈希表(Hash Table)或散列表。]]></description><category></category></item><item><title><![CDATA[C++进阶——红黑树]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142617890</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142617890</guid><author>Bit_qnw</author><pubDate>Sun, 29 Sep 2024 14:46:16 +0800</pubDate><description><![CDATA[红黑树是一种近似平衡的二叉搜索树，与AVL树极为相似，红黑树的主要特点在于它通过约束树中节点的颜色和其他规则，确保树的高度始终接近对数时间复杂度，从而使常见操作（如插入、删除、查找）能够在 O(log n) 时间内完成。]]></description><category></category></item><item><title><![CDATA[C++进阶——AVL树]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142556636</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142556636</guid><author>Bit_qnw</author><pubDate>Thu, 26 Sep 2024 19:33:06 +0800</pubDate><description><![CDATA[ALV树是二叉搜索树的改良版本，AVL树的出现优化了二叉搜索树的一些缺陷。二叉搜索树虽可以缩短查找的效率，但如果对于有序数据的查找或接近有序的数据，二叉搜索树的两侧树高将会相差甚大，这会导数二叉搜索树退化为单支树，查找元素相当于在顺序表中搜索元素，搜索的效率将会变得低下。]]></description><category></category></item><item><title><![CDATA[C++进阶——二叉搜索树]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142526981</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142526981</guid><author>Bit_qnw</author><pubDate>Wed, 25 Sep 2024 22:23:56 +0800</pubDate><description><![CDATA[二叉搜索树是在二叉树的基础之上衍生出来的一颗特殊的二叉树，顾名思义，二叉搜索树主要是用于查找数据的一颗二叉树，其查找的效率很高。二叉搜索树又被称之为二叉排序树，可将存入的数据按照一定的大小次序来排列。]]></description><category></category></item><item><title><![CDATA[C++进阶——多态]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142363193</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142363193</guid><author>Bit_qnw</author><pubDate>Fri, 20 Sep 2024 23:09:57 +0800</pubDate><description><![CDATA[多态的定义与实现，是在类的继承前提下完成的，且构成多态还需要满足两个特定的条件。子类（派生类）必须完成父类（基类）虚函数的重写虚函数调用时传递的参数必须是父类的指针或者引用重载的函数必须在同一作用域函数名必须相同参数不同、与函数返回值相同与否无关对于重写（覆盖），也就是虚重写，发生在两个类的继承关系中重写的作用域是在派生类中重写的函数名返回类型返回值都必须相同，除了协变和析构函数重写两种特殊情况对于重定义，也是发生在两个类的继承关系中作用域是基类和其派生类重定义只需要函数名相同。]]></description><category></category></item><item><title><![CDATA[C++进阶——继承]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142331240</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142331240</guid><author>Bit_qnw</author><pubDate>Wed, 18 Sep 2024 17:32:52 +0800</pubDate><description><![CDATA[子类通过继承可以获得父类的全部属性，而子类获得的属性具有的权限是由父类中的访问限定符和其继承方式共同决定的，类中的访问限定符有三个，分别是：public、private、protected其访问的权限大小依次是：public > protected > prvate，同样的类的继承方式也是这三种类型，但实际上绝大多数场景都是使用public继承方式，这也是封装复用的思想。]]></description><category></category></item><item><title><![CDATA[模板--进阶]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/142315931</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/142315931</guid><author>Bit_qnw</author><pubDate>Tue, 17 Sep 2024 17:22:32 +0800</pubDate><description><![CDATA[顾明思意，指的是不表示为类型的模版，常常用于当成常量用于使用，绝大多数情况都是使用整形家族来使用。需要注意的是，非类型的模板参数也可以使用缺省值，此外非类型参数的本质实际上是常量，所以，只能在声明实例化时确定其值。]]></description><category></category></item><item><title><![CDATA[初识模版--初阶]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134687474</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134687474</guid><author>Bit_qnw</author><pubDate>Wed, 29 Nov 2023 17:03:25 +0800</pubDate><description><![CDATA[1.泛型编程2.函数模板2.1概念2.2函数模版使用格式2.3函数模版原理2.4函数模版的实例化2.41概念 2.42隐式实例化2.43显示实例化2.5模板参数的匹配原则3.类模版3.1类模版的使用格式3.2类模版的实例化结语：


看以上几个swap函数，对于不同类型变量的值交换，我们就需要写不同的swap函数实现这一功能，虽然对于函数重载来说，这并不是什么难事，但是，我们能明显发现使用重载函数应对这种情况是有很大缺点的：1.使用重载的函数仅仅是类型不同，这就会导致代码复用率比较低，只要有新类型出现时，就]]></description><category></category></item><item><title><![CDATA[C++内存管理]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134665624</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134665624</guid><author>Bit_qnw</author><pubDate>Tue, 28 Nov 2023 17:26:09 +0800</pubDate><description><![CDATA[对于自定义类型的操作，new和delete的使用与C语言中的malloc和free的就有较大的差异了，C语言中的malloc和free在处理自定义类型一般是不太适用的差异：new在动态开辟自定义类类型的内存空间后，会自动调用该类类型的默认构造。delete在释放空间之前，会先自动调用该类类型的析构函数。]]></description><category></category></item><item><title><![CDATA[类和对象完结篇]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134572313</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134572313</guid><author>Bit_qnw</author><pubDate>Sun, 26 Nov 2023 20:17:58 +0800</pubDate><description><![CDATA[我们都知道，流插入  > 能够识别的类型只有C++中本身就有的内置类型，对于自定义类型的变量，io类对象cout和cin中没有对应的重载函数，所以本身是无法识别自定义类型的变量的。但我们可以借用已经重载过输入输出的类对象cout，cin来完成识别各个不同参数，使得可以cout和cin能够完成对自定义类型的输入和输出，因为自定义类型的本质也是各个内置类型所组成的。对象参数一定要位于重载函数的第一个参数，否则可能会出现歧义，此外使用的类参数一定是引用类型的参数。为了支持连续。]]></description><category></category></item><item><title><![CDATA[类的6个默认成员函数--超详解]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134177259</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134177259</guid><author>Bit_qnw</author><pubDate>Tue, 14 Nov 2023 22:53:04 +0800</pubDate><description><![CDATA[默认构造对于自定义类型的处理是通过调用自定义类型自己的默认构造函数，以达到初始化自定义类型的处理。]]></description><category></category></item><item><title><![CDATA[初识类和对象]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134148670</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134148670</guid><author>Bit_qnw</author><pubDate>Wed, 01 Nov 2023 09:29:10 +0800</pubDate><description><![CDATA[大家互相学习，一起进步。]]></description><category></category></item><item><title><![CDATA[C++入门详解]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/134069282</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/134069282</guid><author>Bit_qnw</author><pubDate>Sat, 28 Oct 2023 17:03:02 +0800</pubDate><description><![CDATA[命名空间的定义基本语法是使用关键字：namespace后接要取的命名空间的名字，在加上一对｛｝，在｛｝中的成员我们为命名空间的成员，在命名空间中我们可以定义变量、函数、类型等。例如：此外，命名空间也是可以嵌套使用的，并且在一个工程中，命名空间的名称可以相同，最后在编译的时候，多个名称相同的命名空间将会合并为一个。auto可用于直接定义一个变量，但在定义变量时是需要进行初始化的，因为由auto定义的变量，实际上在编译器编译的时候就已经将auto替换为所定义变量的实际类型了。当使用。]]></description><category></category></item><item><title><![CDATA[常见八大排序]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/133977772</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/133977772</guid><author>Bit_qnw</author><pubDate>Wed, 25 Oct 2023 14:56:54 +0800</pubDate><description><![CDATA[常见的排序八大排序分为四种类型，分别是插入排序、选择排序、交换排序，归并排序。其中插入排序包括直接插入排序和希尔排序，选择排序包括选择排序和堆排序，交换排序包括冒泡排序和快速排序，归并排序和剩余的计数排序自己单独作为一种类型，以下的排序都默认是排升序。


顾名思义，直接插入排序是一种比较直接的排序方法，它通过从数据之间的大小比较，找到数据的插入位置，然后完成部分的有序。插入排序是从第二个数开始排序的，通过与前面的数进行比较，找到插入的位置，完成了前面两个数据的有序之后，继续将下一个数进行插入排序，直到最后]]></description><category></category></item><item><title><![CDATA[二叉树的链式结构]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/133934837</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/133934837</guid><author>Bit_qnw</author><pubDate>Thu, 19 Oct 2023 22:55:45 +0800</pubDate><description><![CDATA[return 0;else对于二叉树总结点的计算，其与二叉树的遍历是相似的，只不过是相当于在遍历的同时计算遍历二叉树结点的个数，其同样是可以通过递归实现，将二叉树结点划分为根结点和其左右子树，根节点为1，再计算其左右子树所具有的结点数，这样不断递归划分得到最终二叉树的总结点个数。]]></description><category></category></item><item><title><![CDATA[二叉树的顺序结构——堆]]></title><link>https://blog.youkuaiyun.com/Bit_qnw/article/details/133306367</link><guid>https://blog.youkuaiyun.com/Bit_qnw/article/details/133306367</guid><author>Bit_qnw</author><pubDate>Tue, 26 Sep 2023 16:55:19 +0800</pubDate><description><![CDATA[实际上，我们不需要顺序表就能建立一个堆，可以将一个容量大小固定的数组看成一个堆，围绕该数组本身来建立一个堆，我们给出一个数组，这个数组在逻辑上可以看做一颗完全二叉树，但并不是一个真正的堆，我们可以通过算法，将它构建成一个想要的大（小）堆。左右子树必须是一个堆，才能调整。我们需要先将根节点的左右子树先调整为堆，这里我们从倒数的第一个非叶子节点的子树开始调整，将每一颗子树都调整为堆，一直调整到根节点的树，就可以将整棵树调整成堆，完成堆的建立。void Swap(int* p1, int* p2)//交换两数。]]></description><category></category></item></channel></rss>