![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
关于C/C++开发相关知识及笔记
关联仓库:https://github.com/KikyoShaw
离歌漠
天生我才必有用
展开
-
图解常见匹配算法
前言常见匹配算法有BF算法,BM算法,RK算法,KMP算法常见比较排序算法图解常见非比较排序算法原创 2021-12-27 14:46:53 · 5963 阅读 · 0 评论 -
图解常见非比较排序算法
前言常见非比较排序算法有桶排序,计数排序,基数排序。原创 2021-12-23 11:12:57 · 1296 阅读 · 0 评论 -
图解常见比较排序算法
常见的比较排序有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。算法过程中数据变化可通过调试打印。冒泡排序选择排序原创 2021-12-09 14:52:01 · 1079 阅读 · 0 评论 -
图解字节对齐以及空间计算
结构体空间计算结构体中含有子结构体时空间计算pragma pack(N):按N字节大小对齐总结原创 2021-12-08 11:20:16 · 244 阅读 · 0 评论 -
图解深拷贝和浅拷贝
定义浅拷贝:只发生了值本身拷贝,指针指向的还是同一个地址,没有产生资源拷贝。深拷贝:不仅发生指针本身拷贝,还产生了新的资源分配,指针指向不同地址。为什么要区分深拷贝和浅拷贝本质就是类中含有指针时,在进行拷贝后,类释放产生内存问题,常见于拷贝构造中。拷贝构造使用场景一个对象以值传递的方式传入函数体一个对象以值传递的方式从函数返回一个对象需要通过另外一个对象进行初始化默认拷贝函数是浅拷贝?使用默认拷贝函数拷贝指针对象的后果?解决方案:深拷贝在对含有指针成员的对象进行拷贝时,可以采原创 2021-12-07 17:57:31 · 1134 阅读 · 0 评论 -
图解虚函数
证明虚函数指针的存在指针在32位环境下占用4个字节关于虚函数指针和虚函数表虚函数是多态实现的机制总结1.每一个类都存在一个虚函数表,存储着虚函数入口。2.虚表可以继承,如果子类没有重写虚函数,那么子类虚表中仍然会有该函数的地址,只不过这个地址指向的是基类的虚函数实现。如果基类N个虚函数,那么基类的虚表中就有N项(虚函数地址),派生类也会有虚表,至少有N项,如果重写了对应的虚函数,那么虚表中的地址就会改变,指向自身的虚函数实现,但如果派生类有自己的虚函数,那么虚表中就会添加该项。3.原创 2021-12-07 15:56:27 · 408 阅读 · 0 评论 -
printf/fprintf在终端输出带颜色的数据
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和实现的语言无关。改变颜色的目的主要是为了能在查看大量数据时,便于查看。格式:\033[显示方式;前景色;背景色m\033[0m默认\033[1;32;40m绿色\033[1;31;40m红色显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)27(非反显)前景色:30(黑色)、31(红色)、32(绿色)、33(黄色)、34(蓝色)、35(洋红)36(青原创 2020-10-19 16:10:50 · 870 阅读 · 3 评论 -
关于C/C++内存问题(个人笔记,提供分享)
C/C++程序编译的时内存分为5大存储区栈区(stack):该区是由编译器自动分配释放,一般存放的是函数的参数值和局部变量等,它的操作方法类似数据结构中的栈。堆区(heap):该区一般由程序员分配与释放,但它与数据结构中的堆毫无关系,它的分配方式类似于链表的分配方式。静态区/全局区(static):该区存储的是全局变量和静态变量(静态全局和静态局部),在程序编译的时候分配,默认初始值为0或...原创 2019-05-08 13:35:28 · 305 阅读 · 0 评论