自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Django:基础知识】

方法一:在Admin界面自定义控件,通过ModelAdmin的form或来修改控件。在自定义的 StudentAdmin 里,用 formfield_overrides 指定:所有 models.DateField 都用 forms.DateInput,并加上 attrs={'type':'date'},这样渲染成 <input type="date">,页面会出现日期选择器。写完了管理类还没完结,需要把这个管理类注册进urls.py中才能使用这个管理类。

2025-08-21 14:46:31 1139

原创 C++:function&bind

std::function是一个函数包装器,可以存储、复制和调用任何可调用目标,如普通函数、Lambda表达式、函数对象等。std::bind创建一个新的可调用对象,将参数绑定到指定的函数。

2025-07-26 16:21:08 190

原创 C++:可变参数&tuple&apply&invoke_result&decltype

std::forward(f) 和 std::forward(args)…T&& 是转发引用(forwarding reference),可以是左值引用或右值引用。强制异步执行:使用std::launch::async强制在新线程中异步执行任务。如果 T 是 int&&(右值引用),std::forward 转换为右值。如果 T 是 int&(左值引用),std::forward 保持左值。延迟执行:使用std::launch::deferred延迟任务执行。T&& && → T&&(右值引用)

2025-07-24 14:14:12 530

原创 C++:future&promise&packaged_task&async

【代码】std中的future。

2025-07-23 22:24:56 515

原创 C++:右值&右值引用&forward、引用折叠&move

C++ 11引入右值引用的概念,右值引用(使用&& 声明)可以绑定到右值,主要目的是优化资源管理,如实现移动语义和完美转发,允许开发者直接操作临时对象,避免不必要的拷贝,提升程序效率。例如在涉及std::vector 、std::string 等可能包含大量数据的容器操作时,利用右值引用实现移动语义,可避免深拷贝,提高性能。std::function是一个函数包装器,可以存储、复制和调用任何可调用目标,如普通函数、Lambda表达式、函数对象等。右值是表达式的一种分类。

2025-07-23 22:07:02 400

原创 C++:线程&锁&条件变量&atomic

这个例子展示了经典的"生产者-消费者"模式:生产者往队列里放数据,消费者从队列里取数据。条件变量确保消费者不会在队列为空时尝试取数据。detach后的线程称为分离线程或守护线程,它会在后台默默运行,直到自己的任务完成。线程间的同步不只有互斥,有时我们需要一个线程等待某个条件满足。lock_guard一旦创建就会锁定互斥量,一旦销毁(离开作用域)就会解锁互斥量。lock_guard局限性:一旦上锁,在其生命周期内不能手动解锁了。不但能自动锁门解锁,还能根据你的指令随时锁门或开门。条件变量使用的注意事项。

2025-07-17 17:24:53 824

原创 Qt:鼠标事件

虽然Qt是跨平台的c++开发框架,但是Qt的很多能力是系统提供的,只是其封装了系统的API,例如在Linux环境下的Qt就封装了Linux的一堆API系统API事件:图形化界面中,用户操作和程序之间交互的机制(封装了系统的事件)文件操作多线程编程网络编程多媒体:音视频的播放。

2024-08-27 22:04:18 652

原创 Qt:线程

一个Qt窗口生成后,为什么拖动窗口,窗口可以随着鼠标移动或放大缩小因为对窗口操作后,都有对应的事件产生,Qt在其框架中对这些事件进行了默认处理一个Qt程序默认只有一个线程,称为主线程(也叫ui线程),主要处理窗口的事件(比如鼠标拖动,缩放,窗口控件对象数据的更新)不能用子线程处理这些事,如果子线程要操作窗口,只能先将数据传递给主线程,由主线程操作。

2024-08-09 22:11:27 612

原创 Linux:读写锁

读写锁是一把锁,是互斥锁的升级版互斥锁没有说明是锁定读还是锁定写,读写锁有两个功能分别对读和写操作进行锁定锁的类型是pthread_rwlock_t读写锁会记录自己现在是锁定状态还是非锁定状态锁定状态下是读锁定还是写锁定。

2024-07-27 13:09:11 474

原创 MySQL:约束&主键&唯一键

表的约束:表中一定有约束,通过约束让插入表中的数据是符号预期的约束的本质是通过技术手段,倒逼程序员插入正确的数据。

2024-01-04 23:25:56 802

原创 MySQL:表操作&数据类型

插入格式 insert into 表名(date datetime) values (‘2000-01-01’, ‘2000-01-02 08:00:00’);串,L表示字符长度,最大是65535个字节,21845个字符(utf8下是这么多,因为一个字符是3个字节大小)alter table 表名 change 旧列名 新列名 列属性 comment `解释`char(L):存固定长度的字符串,L是可以存储的长度,不同的存储引擎在存储表的时候,生成的数据库文件个数不同。

2024-01-04 11:10:51 1127

原创 STL:双端队列&容器适配器&仿函数&优先级队列

代码84~100行是实现两个不同比较方式的仿函数,同容器适配器一样,在类模板参数列表中重命名,112行定义类对象,117行是对象调用()运算符重载函数,将括号中的两个参数传给类中的成员函数。通俗来说就是把函数封装到类里面,要使用该函数时,只需要定义一个这个类的对象,通过对象调用运算符重载函数,使用该功能。迭代器适配器:list反向迭代器的实现,封装了正向迭代器(抽出正向迭代器中的方法重新进行封装)仿函数又称函数对象(可以像函数一样调用的对象称为函数对象)C语言中,栈封装数组,队列封装链表,

2023-07-23 16:38:27 347 1

原创 STL:list的模拟实现(迭代器失效探讨)

在反向迭代器类中没有P和R类型,但是在正向迭代器中有,需要去找。用户只和list类进行交互,在list类中实例化迭代器的模板。反向迭代器是通过正向迭代器实例化出来的。使用:指针所具备的操作迭代器都需要有。**对list指针++和- -加typename的原因。

2023-07-23 16:37:54 259

原创 STL:vector的使用(初识迭代器&迭代器失效)

vector也是动态类型的顺序表,可以存储任意类型的元素string是动态类型顺序表,只能存储charvector有三个字段,写时拷贝&深拷贝。

2023-07-23 16:37:31 410

原创 STL:list

list是带头双向链表begin在首元素节点end在哨兵位节点find是公用方法,在某个区间内查找某个值为val的元素,找到则返回val的迭代器,没有找到则返回区间末尾迭代器第一个参数是区间首地址第二个参数的区间末尾。

2023-07-23 16:36:57 165

原创 STL:栈和队列的模拟实现

栈和队列不需要遍历,所以没有迭代器。

2023-07-23 16:36:18 132

原创 string:oj题目

【代码】string:oj题目。

2023-06-09 17:08:29 127

原创 STL:string使用

编码:ASCIIutf-16----一个字符2个字符utf-32----一个字符4个字节gbk–中文编码表。

2023-06-07 18:43:45 642

原创 C语言:函数栈帧

这两个寄存器存放的是地址,用来维护函数栈帧(正在调用哪个函数,两个寄存器就维护哪个函数的栈帧)每一个函数都要创建一个空间(栈区创建,栈区的使用是先使用高地址,后使用低地址)esp值减去 0E4H(此时两个寄存器新维护了一段空间)必须理解这两个寄存器(寄存器是独立于内存的)esp的值赋值给ebp(更新了ebp的指向)形参的传入是在main函数栈帧里面完成的。三次push是压入三个元素(不用管)main函数是被别人调用的。局部变量是怎样创建的。

2023-06-01 18:23:49 704

原创 数据结构:二叉树oj

搞清楚递归时候,遇见哪些条件不满足时候,递归函数退出。根据前序遍历的方法对数组每个元素初始化。给一颗二叉树,值放入数组中进行前序遍历。先遍历二叉树,得到树的结点个数。

2023-04-14 12:20:43 192

原创 数据结构:二叉树相关操作

先入队,使用front指针标记队头元素,打印队头元素对应的值。然后判断root的左右子树是否存在,存在就要入队push。入队一定要定义队头指针,标记队头元素。

2023-04-14 12:20:28 182

原创 数据结构:堆

堆的底层是一个顺序表,对这个顺序表进行特定的操作物理上是一个数组逻辑上是一个二叉树。

2023-04-14 12:20:07 127

原创 数据结构:队列

第一个结构体是基本结构,表示队列的节点。第二个结构体是用来找队列的头和尾。

2023-04-14 12:19:35 120

原创 数据结构:栈oj

20. 有效的括号如果遍历到的数组元素是左括号就入栈如果遍历到的数组元素是右括号就出栈在此步骤中,如果栈为空就不能出栈,返回false如果不为空看左右括号是否匹配,只要有一个不匹配就false最后栈为空则全部匹配

2023-04-09 11:05:00 223 1

原创 数据结构:栈实现

capacity是容量。

2023-04-09 10:43:04 122

原创 数据结构:链表oj下

一个指针从head走,一个指针从相遇点走,下次相遇就是入口点。找链表的最后一个节点while(tail->next)找到AB链表的尾节点,尾节点地址相同就是相交。不加36行代码会造成死循环(形成环)走完一个链表while(tail)如果是环,快指针在环内追上慢指针。找到中间节点,再把后面的逆置。求交点:求出AB两链表的长度。如果不是环,快指针就指向空了。每个指针都向后走一步。

2023-04-09 10:37:58 444

原创 数据结构:链表oj上

未考虑头结点是val的情况。

2023-04-02 21:21:32 184

原创 数据结构:不带头的单链表实现

顺序表为空时,结构体是存在的,a,size,capacity。顺序表数据不是存在于结构体上的,是存在于结构体指向的空间上面的。tail置为空,tail是局部变量,而3->next不为空,必须要有一个指针指向3。找链表的尾,while(tail->next!链表中一个节点都没有,表示头指针指向了空。或者用tail->next->next。链表的数据是存在于结构体上的。要给一个prev指针。

2023-04-02 15:05:47 294

原创 MySQL:库操作

定长char(10)表示最大存储10个字符串,存1个字符依然占10个空间。使用decimal要指定精度(总长度)和标度(小数点长度)类型后加UNSIGNED变无符号。varchar存几个占几个。

2023-03-31 10:27:17 145

原创 MySQL基础

SQL语句

2023-03-29 23:18:17 85

原创 数据结构:顺序表代码

assert:参数为0程序直接中止,可以精确的打印哪个文件哪一行出现断言。顺序表为空时,顺序表结构体是存在的,结构体成员的a指针指向空。不带头节点的链表为空时,链表结构体是不存在的。return返回该函数,程序不会结束。free的时候,数组越界报错。exit:直接中止程序。

2023-03-01 10:50:04 117

原创 C语言:数组指针&函数指针&回调函数

0是一个整数,先强转成函数的地址,(对函数的地址解引用就是函数)再解引用变成了函数,再加括号调用该函数。调用地址为0的函数,但0不能当做一个地址,所以将0强转为void(*)()类型的函数。*的结合优先级低于( )和 [ ]。

2023-01-12 17:18:50 1198

原创 C语言:整数的存储方式

最后将32位的补码转化为8个十六进制(每4位二进制,转化成1位16进制),32个二进制位转换成为8个十六进位。各种类型数据均分为有符号和无符号类型,当定义一个int类型或char类型的数,计算机默认其为有符号类型。char类型只有一个字节八位,只能保存-128~127之间的值,-1+1后,会将1省略变成0。有符号char类型,十进制数值表示范围是(-128~127);有符号数二进制首位是符号位,0正1负;有符号数和无符号数均有原码、反码、补码。计算机计算用补码,人看到的是原码。ab是有符号,c是无符号。

2023-01-11 21:13:46 1452

原创 C语言:隐式类型转换

就是变成整型:有符号补符号位,无符号补0。其余类型计算会发生算术转换。

2023-01-11 21:13:05 190

原创 C语言:笔记

一个全局变量可以在整个工程的其它文件内部能被使用,是因为全局变量具有外部链接属性,当全局变量被static修饰时,这个外部链接属性就变成了内部链接属性(该全局变量只能在自己所在源文件中使用,感觉是作用域变小了)extern,用于声明,该变量或者函数已经在其它文件中定义,在此处声明。default,前面case没有匹配,就走default。auto,定义自动变量,自动创建回收,等于局部变量。函数链式访问,把一个函数返回值当作另一个函数的参数。修饰函数和修饰全局变量一样,改变链接属性。

2023-01-10 19:11:50 510

原创 C语言:大小端

指针的类型决定其解引用操作可访问几个字节,char指针解引用只能访问或操作一个字节的内容,将a的地址强制转化成char*类型,再用char指针访问首字节。1的十六进制为0x00000001,若是小端存储,则第一个字节值为1,若是大端存储,第一个字节的值为0;这个规律是将数据按字节(00,FF每两个数是一个字节)的顺序进行存储,而不是按二进制位的顺序。记忆方法 小小小:数据 小 权值位放在 小 地址处,叫 小 端 ,计算机只从低地址处开始访问。

2023-01-08 12:17:36 754 1

原创 C语言:浮点型存储方式

E:是一个无符号整数,由科学计数法计算出M的有几个10次方,再加127或者1023;再将该值转化成二进制。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即10001001。1(S符号位) 8(E阶码) 23(M尾码)省略首位1。任意一个二进制浮点数V可以表示成下面的形式。M:由浮点数转化成二进制数表示。

2023-01-07 22:47:23 606

原创 QT:自定义对话框

程序员依据自己的想法去设计一个对话框模态对话框和非模态对话框:

2022-12-07 18:28:46 818

原创 QT:多进程

多进程

2022-12-07 18:04:01 4217

原创 QT:qss语句&资源文件

什么是样式设计?类似于网页设计中的css,为了让你的QT界面更加的好看如何跳到QT改变样式表的界面?font: 48pt “楷体”; //字体设置成楷体 48号字给组件添加背景图片给QT工程添加资源文件资源文件:你的QT工程需要用到的外部文件都叫做资源文件,常见的资源文件有图片,音频文件,视频文件

2022-12-06 23:24:51 543

空空如也

空空如也

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

TA关注的人

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