- 博客(22)
- 收藏
- 关注
原创 实现memmove、memcpy、strcpy、strncpy、strcmp和strlen:简单但细节很多
实现memmove、memcpy、strcpy、strncpy和strlen:简单但细节很多
2022-07-12 14:46:00
981
原创 笔记-归并排序递归和非递归写法
笔记-归并排序递归和非递归写法:归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。...
2022-07-03 22:59:55
200
原创 详解bind绑定器和function函数对象机制
bind1st和bind2nd使用代码举例如下:自己动手实现bind1st和find_if:bind和function机制;模板的完全特例化(全特化)和部分特例化(偏特化);区分一下函数类型和函数指针类型;通过vector演示模板特例化的使用;自己动手实现function 理解原理;bind绑定器使用举例;muduo源码中的线程池用C++代码模拟;lambda表达式的原理和实践 ;通过lambda表达式实现有自定义优先级队列的比较方式;
2022-04-06 15:21:28
1344
1
原创 详解C++智能指针
裸指针有哪些不好的地方?智能指针原理:不带引用计数的智能指针:1.auto_ptr :2.scoped_ptr:3.unique_ptr:自己实现一个简单的unique_ptr :带引用计数的智能指针 : shared_ptr和weak_ptr;自己实现一个简单的shared_ptr:智能指针的交叉引用(循环引用)问题 :多线程访问共享对象的线程安全问题自定义删除器:当unique_ptr和shared_ptr管理动态分配的数组空间时候的区别:效率与灵活性;运行时绑定删除器和编译器时绑定删除器
2022-04-06 14:33:35
3892
原创 详解C++对象优化-右值引用-移动语义-完美转发
详解C++对象优化-右值引用-移动语义-完美转发:1.对象背后调用哪些方法?2.函数调用过程中对象背后调用的方法:3.总结3条对象优化原则:4:带右值引用的拷贝构造函数和拷贝赋值运算符(移动构造函数和移动赋值运算符)5.通过模板实现右值引用函数:
2022-04-06 10:13:05
291
原创 通过哈希表或者数组实现并查集
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。例如:在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合, 然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上
2022-03-01 20:51:44
401
原创 先序遍历和层次遍历实现二叉树的序列化和反序列化
树节点在内存中存放,通过指针串接起来,现在想把这棵树变成文件的形式(那么最好把这棵树转成字符串);这个字符串可以代表唯一的树结构,还可以还原出唯一的树来,这就叫二叉树的序列化和反序列化 。二叉树可以通过先序、后序或者按层遍历的方式序列化和反序列化,但是二叉树不能通过中序遍历实现序列化和反序列化,因为不同的二颗树可能得到相同的中序遍历结果。
2022-03-01 19:23:12
580
原创 详细讲解二叉树先序-中序-后序递归和非递归遍历以及层次遍历
二叉树有先序遍历(根左右)、中序遍历(左根右)和后序遍历(左右根)和层次遍历几种遍历方式。这几种遍历方式是其他二叉树解题的基础,所以必须先掌握。递归遍历二叉树:因为二叉树本身就是用递归定义的,因此采用递归的方法实现三种遍历代码简洁且容易理解,但其开销比较大。二叉树的先序、中序和后序遍历:先序遍历:任何子树的处理顺序都是:先根结点,再左子树,然后右子树 (根左右)中序遍历:任何子树的处理顺序都是:先左子树,再根节点,然后右子树 (左根右)后序遍历:任何子树的处理顺序都是:先......
2022-03-01 18:50:04
2287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人