自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 创建型设计模式

比喻:整洁的房间,有一只好动的猫,如何保持房间的整洁。继承:无需修改原有类的情况下,通过继承,实现对原有功能的拓展。多态:静态多态,即函数重载;动态多态,继承中虚函数重写。设计模式是指在软件开发过程中,经过验证的,用于解决在。期望只修改少量的代码,就可以适应需求的变化。三大特征:封装、继承、多态。前提:具体的需求,既有稳定点,也有变化点。软件设计过程中,解决问题的固定套路。满足设计原则后,慢慢迭代出来的。封装:隐藏实现细节,实现模块化。3.设计模式解决了什么问题?2.设计模式是怎么来的?

2024-06-18 14:15:57 469

原创 BM42 用两个栈实现队列

栈是先进后出的结构,队列是先进先出的结构。

2024-06-18 13:13:35 223

原创 BM43 包含min函数的栈

【代码】BM43 包含min函数的栈。

2024-06-18 12:08:05 175

原创 如何仅用递归函数和栈操作逆序一个栈

一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但只能用递归函数来实现,不能用其他数据结构。

2024-05-30 20:09:22 209

原创 用一个栈实现另一个栈的排序

s1 pop,赋值给temp,temp小于等于s2栈顶元素的话,直接将temp push到s2;如果temp大于s2的栈顶元素,将s2中的元素先过渡到s1,直到temp小于或等于s2的栈顶元素(空),temp压入s2.1.s1代表原来的栈。

2024-05-30 11:35:39 82

原创 音视频基础

1。

2024-04-30 04:37:31 171 1

原创 虚析构函数的作用

为什么不直接将析构函数都设为默认是虚析构函数的呢?因为在 C++ 看来,我们设计某个类,不一定是基类,这是符合期望的,基类与子类都正常析构了,那么什么时候析构会出问题呢?子类对象指针赋值给基类指针,在调用析构函数的时候,子类对象的析构函数得不到调用。如果该类是基类,我们应该手动将基类的析构函数设置为虚函数。,编译器会为类生成虚函数表,每个对象都需要持有 vptr。此时子类与基类都正常析构了。设置虚析构函数是有代价的。子类并没有正常析构!

2024-04-28 22:50:46 493 1

原创 怎么解决菱形继承

使用g++ -fdump-lang-class virtual-inheritance.cpp -o vi 这个命令来查看类的内存模型,其中, -fdump-lang-class是gcc 8.0以上使用的命令,gcc 8.0以下使用的参数为-fdump-class-hierarchy,可以看出在Class C中,两个Class A的地址并不一样!期望的运行结果应该是两个num的打印值都是2,即在两次对num的赋值中,第2次赋值覆盖第一次赋的值,从运行结果来看,显然并不是这样的。一、什么是菱形继承?

2024-04-28 17:54:17 363 1

原创 C++的智能指针

在这段代码中,buf是存在于栈上的,一个Buffer对象的智能指针,但make_shared创建出来的对象却是存在于堆上的,从运行结果可知,析构函数被调用,智能指针完成了对堆上数据的释放。因为智能指针本身是栈上的,出了定义域,指针自身会释放,同时与其他智能指针共享的指针计数count会减1,只有count为0时,才会去析构对应的对象。智能指针的引用计数是安全的,但是智能指针不能保证线程的数据安全,线程的数据安全还需要自己加锁。2.共享所有权指针的传播和释放,比如多线程使用同一个对象时析构的问题。

2024-04-28 03:02:27 686 2

原创 什么时候生成默认拷贝构造函数

如果不提供默认拷贝构造函数,那么会按照位拷贝进拷贝,有些时候位拷贝会出现不是我们所预期的行为。

2024-04-25 11:37:36 133 1

原创 什么时候C++生成默认构造函数

B b;return 0;为了实现多态机制,需要为类维护一个虚函数表,类所有对象都需要保存一个指向该虚函数表的指针,对象需要初始化该虚函数表的指针,不得不提供默认构造函数来初始化虚函数表指针4.

2024-04-25 03:44:00 264 1

原创 C++的强制类型转换以及使用场景

2024-02-26 23:32:34 359 1

原创 WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.

2.配置环境变量,使用命令sudo vi ~/.bashrc打开配置文件,在最后一行加上export PATH=$PATH:/usr/local/bin。Ubuntu安装pip3后,使用pip3 -V,总会发出warning。3.保存退出后,执行source ~/.bashrc,使环境变量生效。1.使用which pip3查看路径。4.检查pip3 -V,警告消失了。

2024-01-29 10:30:40 441

原创 MySQL不能登录远程IP,只能连接127.0.0.1

1.登录MySQL,输入密码后进入MySQL中。2.使用mysql数据库。

2024-01-28 23:53:18 930 1

原创 memcpy、strcpy和sprintf的区别

【代码】memcpy、strcpy和sprintf的区别。

2024-01-18 14:38:39 673 1

原创 extern关键字的作用

【代码】extern关键字的作用。

2024-01-18 09:54:39 404 1

原创 malloc、free和new、delete的区别

2024-01-17 17:39:49 411

原创 如何避免野指针

2024-01-17 16:46:35 352

原创 指针和引用的作用与区别

2024-01-17 16:23:59 329

原创 static关键字作用

【代码】static关键字作用。

2024-01-17 09:51:18 465

原创 const关键字的作用

3、在C++中,全局const变量同样不能修改,const修饰的局部变量加载于符号表中,无法修改,但修改不会报错,只是修改不会生效。2、在C语言中,局部const位于栈区,可以通过指针修改变量值;全局const位于静态全局区,无法修改,如 果修改会发生段错误。例如,在 func(const T &a){} 中,const的作用就是保证在这个函数中,a不能被修改。1、在C语言中,分为局部const、全局const。5、指针,有指针常量,常量指针。

2024-01-16 23:16:57 548 1

原创 C++服务器学习第二天

基础组件:中间件:单独运行起来,MySQL,Redis,TiDB,RocksDB,Nginx,MongoDB框架:Skynet,Tars,dpdk。

2023-07-24 21:36:10 42

原创 C++服务器学习第一天

(5)有K棵子树的分支结点则存在k-1个关键字,关键字按照递增顺序进行排序。(6)关键字数量满足ceil(M/2)-1 <= n <= M-1。1.磁盘慢,永久存储,内存快,断电消失。(3)除了根结点以外,每个分支结点至少拥有M/2棵子树。(1)每个结点至多拥有M棵子树。(4)所有的叶结点都在同一层上。(2)根结点至少拥有两棵子树。

2023-07-22 21:02:23 30

原创 【无标题】Ubuntu下QT交叉编译环境的配置

Ubuntu下qt交叉编译环境的配置问题

2023-03-07 18:06:30 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除