自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一些七零八碎的知识点

关于c++的博客

  • 博客(84)
  • 收藏
  • 关注

原创 线程互斥,线程安全和线程同步

1.创建线程pthread_create()2.终止线程的三种方法。线程取消pthread_cancel(一般在主线程取消), 线程终止pthread_exit(在其他线程执行), 或者使用线程返回return3.线程等待pthread_join需要等待的原因是1.已经退出的线程,其空间没有被释放,仍然在进程的地址空间内。2.创建新的线程不会复用刚才退出线程的地址空间。

2024-04-18 22:45:15 695

原创 LWP等理解

线程互斥指的是在多个线程间对临界资源进行争抢访问时有可能会造成数据二义,因此通过保证同一时间只有一个线程能够访问临界资源的方式实现线程对临界资源的访问安全性。

2024-04-16 23:46:59 320

原创 进程控制——Linux

概念:让子进程执行新的程序原理:1.将磁盘中的程序,加载到内存结构中2.重新建立页表映射,设执行程序替换,就重新建立谁的映射,结果:让我们父子进程彻底分离,并让子进程执行一个全新的程序。

2024-04-11 19:58:40 914

原创 set和map

返回的pair的first是一个迭代器iterator,要么是新插入的元素,要么是没插入成功(防止冗余),返回的是与之相等的元素的位置。insert的返回值的pair 和 库里面结构的pair不一样,这个要区分开来。情况一,假如k在map的对象中,插入失败,这里充当查找k对应的v,修改k对应的v。erase删除返回的被删除数据的个数。value_type就是pair,也就是存的是一对数据,是一个结构。不会,因为迭代器和链表一样,每个结点都是独立的。不管要找的那个值存在不存在,则返回比它大的那个值的迭代器。

2024-04-11 19:02:18 1214

原创 多态——C++

继承的概念和定义,基类和派生类对象赋值转换,这点可以去学学。一般子类继承级就用公有继承。继承中的作用域就了解一下就OK。虚拟继承半了解就行。我们自己设计尽量不要用菱形继承。但是可以用多继承。怎么让不同的对象调用不同的函数,这里涉及到对象赋值转换,切割。//普通票public:cout << "买票——全价" << endl;//学生票 继承普通人public:cout << "买票——半价" << endl;

2024-04-11 17:17:22 1141

原创 模拟实现队列

好的习惯是,每一次delete后记得把指针设置为nullptr,不让他成为野指针。释放节点的思路:服用pop函数先释放每一个链表节点,最后释放虚拟头结点。队头指针_front不变,管理出队,队尾指针迭代管理入队。1.使用的是链式结构的队列。实现思路,队头队尾指针指向同一个虚拟头结点。2.设置队头指针,和队尾指针。

2024-03-27 14:52:50 226

原创 模拟实现栈

3. push入栈问题,扩容需要把旧空间的元素 重新 拷贝到新的地址空间。但是malloc后面有realloc,就省下了这些步骤。1.栈的初始化,这里是用new还是malloc。初始化记得分配空间,和容量。2. 边界问题,出栈记得判断是否越界。

2024-03-23 07:15:00 213

原创 手撕双向循环链表

1.对这个头节点的设计,prev和next都要指向头。环境:Linux的gcc环境,gdb。display 变量名 设置变量。s 逐步进行(进入函数内部)2.对于gdb的调试。l 行号 显示代码。

2024-03-22 17:13:41 115

原创 手撕单链表

假如没有用dummy虚拟指针,还要注意二级指针问题,比如头插头删,或者销毁链表,涉及到改变头结点的指针自身要改变的问题。单链表的复习,根据接口手撕单链表,删除节点注意判空。创建一个虚拟头结点dummy会更好操作一些。

2024-03-21 21:52:37 102

原创 链表练习2

注意链表的每个结点连接上去的末尾要设置为NULL,因为末尾不一定是NULL。1.可以不使用多次循环,一次就够了,能直接连接就直接连接。

2024-03-18 23:26:55 164

原创 链表练习1

总体思路就是需要设置虚拟头节点。1.删完节点记得释放内存。2.遍历的条件需要时cur->next, 因为cur只是一个虚拟节点。3.dummyHead指向原链表。确保返回头节点。cur负责移动删除链表结点。

2024-03-18 23:26:24 201

原创 时间复杂度1+空间复杂度

0和n+1个数异或,n+1个数还是原来的样子,主要是要和2n+1的数再次异或,(相同为0,相异为1,0异或0还是0)得到缺失的数字。

2024-03-18 23:25:45 177

原创 数组练习oj

left指针指向输出数组,right指针指向输入数组。

2024-03-18 23:24:13 178

原创 widget一些控件的使用

通过设置定时器timer,绑定updatetime的自定义槽函数,来实现倒计时。给QLabel关联一个 伙伴, 这样点击QLabel就能激活对应的伙伴。此处把 label 中的⽂本设置为 “快捷键 &A” 这样的形式.• toggled 是 checked 属性改变时触发的.Qt::AutoText 根据⽂本内容⾃动决定⽂本格式.可以通过 alt + A 的⽅式来触发该快捷键。• released 是⿏标释放触发的.和上面的lcdnumber的接口差不多。• pressed 是⿏标按下触发的.

2024-03-17 20:51:44 505

原创 lambda+QWidget的属性

后续如果我们对应的槽函数比较简单,而且是一次性使用的,就经常会写这种lambda的形式。另外需要确定捕获到的变量是有意义的。确保无论何时用户点击了按钮,捕获到的变量都能正常使用。btn变量是new出来的,生命周期跟随整个窗口,(挂在了对象树上,窗口关闭才释放)this指针是Widget w实在main函数中定义的,随着进程结束才释放的。一般都是按照 [=] 值的方式来捕获各种变量。但是也可以用 [&] 引用来捕获,但是需要关注引用的变量本身的生命周期。

2024-03-15 15:50:07 568

原创 信号和槽1

开发当中大部分情况都是需要自定义槽函数的。实际上和自己自定义成员函数没什么区别。但是在以前的Qt版本中,必须将槽函数放到public slots中。qmake使用元编程技术,构建Qt项目的时候,使用qmake会自动扫描关键字,比如slots从而,生成一些qt的代码。btn->setText("按钮");delete ui;this->setWindowTitle("按钮已经按下了");private:qt生成的函数形同。

2024-03-13 21:44:54 536

原创 Qt对象树

这个代码在new了之后没有释放,不会造成内存泄漏。原因是这个对象是挂到了对象树上。qt就是设计了一个n叉树,将各种元素组织起来了。例如以下图通过树形结构,就把界面上显示的这些控件对象都组织起来了。使用对象树,把这些内容组织起来,在窗口关闭的时候释放。所以,通过new的方式创建对象,也就是把这个对象的生命周期,交给Qt的对象树来统一管理。假如在栈上创建的话,生命周期会随着构造函数的结束,就释放掉。

2024-03-12 19:02:44 873

原创 Qt环境搭建+简单程序实现

Qt是一个跨平台的C++图形用户界面应用程序框架。框架的本质就是一群大佬发明的让菜鸡写出来的代码也也比较规范也就是限制程序员的自由,让程序员写出来的代码规范。库和框架有相似性。库是被程序员调用的,(程序员是主体),由程序员填充一些框架。Qt是跨平台的,支持Linux,windwos,Mac,嵌入式系统Linux中主要是KDE桌面是Qt构建的。

2024-02-04 21:06:53 1171

原创 植物大战 二叉搜索树——C++

简单的二叉搜索树,也叫二叉排序树

2023-03-01 13:48:32 4208 3

原创 环境变量 进程地址空间——Linux

环境变量 和地址空间 认识

2023-02-28 23:08:50 365

原创 植物大战 仿函数——C++

stack和queue适配器 , 仿函数 ,deque,list反向迭代器的适配。

2023-02-21 18:30:01 34819 17

原创 植物大战 List——C++

list细节点 STL

2023-02-14 11:17:36 3748

原创 植物大战 vector——C++

C++ STL vector 底层剖析

2023-01-27 21:57:07 5210 4

原创 进程概念——Linux

Linux进程基本概念

2023-01-22 18:59:04 15774 9

原创 gcc和gdb的使用——Linux

Linux gcc gdb makefile 知识点

2023-01-09 21:54:51 902 3

原创 vim的使用——Linux

umask的补充,Linuxyum和vim的使用

2023-01-06 22:26:33 2212 3

原创 植物大战 动态内存——C++

C++动态内存原理和使用

2023-01-05 21:56:12 4482 7

原创 权限问题的理解——Linux

Linux的权限操作和概念。

2023-01-04 23:00:13 813 7

原创 Linux基础概念和指令

Linux基础概念和指令

2023-01-03 19:32:32 593

原创 植物大战 日期类(2)——C++

const用法,初始化列表,static静态变量用法

2023-01-02 17:35:26 748

原创 植物大战 日期类——C++

C++特性的使用,日期类

2023-01-01 22:44:34 15253 15

原创 云IDE的第一次体验——csdn

云ide的初次使用

2022-10-22 20:38:17 985 5

原创 植物大战 string——C++

string详解细节

2022-10-14 17:29:45 6949 11

原创 初始javaSE

初始java

2022-10-09 10:17:48 771 5

原创 植物大战 继承——C++

C++继承概念细节底层

2022-09-29 22:43:48 4687 16

原创 植物大战 模板——C++

C++模板

2022-09-27 21:22:25 53441 61

原创 新学期 新flag~

新学期。新flag

2022-09-22 20:08:05 923 17

原创 植物大战 类和对象2——C++

类和对象 static 延伸

2022-08-10 22:13:16 5784 22

原创 植物大战 类和对象 ——C++

C++ 类和对象

2022-08-03 19:27:02 14977 17

原创 植物大战 C++ ——基础特性

植物大战C++ 入门。

2022-08-02 17:36:18 1906 10

空空如也

空空如也

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

TA关注的人

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