十二画小生
码龄3年
关注
提问 私信
  • 博客:90,355
    社区:22
    问答:8
    90,385
    总访问量
  • 46
    原创
  • 313,977
    排名
  • 140
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:C++程序员一枚,持续更新,分享我的学习笔记,做到厚积薄发

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2021-12-17
博客简介:

m0_65443540的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    303
    当月
    3
个人成就
  • 获得212次点赞
  • 内容获得13次评论
  • 获得474次收藏
创作历程
  • 27篇
    2024年
  • 10篇
    2023年
  • 9篇
    2022年
成就勋章
TA的专栏
  • C++
    8篇
  • 其他技能
    1篇
  • Linux
    1篇
  • 计算机四大件
    4篇
  • 数据库
    3篇
  • QT
    9篇
  • C++习题
    6篇
  • Java基础篇
    3篇
兴趣领域 设置
  • 编程语言
    c++
创作活动更多

仓颉编程语言体验有奖征文

仓颉编程语言官网已上线,提供版本下载、在线运行、文档体验等功能。为鼓励更多开发者探索仓颉编程语言,现诚邀各位开发者通过官网在线体验/下载使用,参与仓颉体验有奖征文活动。

368人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

函数传递(值传递、指针传递、引用传递)

在C++中,有三种主要的函数参数传递方式:值传递、指针传递和引用传递。当我们将一个值传递给函数时,函数会创建该值的副本,并在函数内部使用这个副本。这是因为引用传递允许函数直接访问和修改原始值,使得代码更加简洁和易读。这是因为在值传递中,函数会创建参数的副本,而不是直接修改原始值。函数可以通过引用直接访问和修改原始值,而无需创建副本。在函数内部,我们可以直接修改原始值,而无需使用指针或副本。在函数内部,我们通过解引用指针来修改原始值。1.当函数需要修改原始值时,指针传递是一个不错的选择。
原创
发布博客 2024.10.15 ·
423 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

线程同步方式

线程同步是指协调多个线程的执行顺序以及访问共享资源的方式,以避免出现竞争条件(Race Condition)和数据不一致性等问题。- 互斥锁是最常用的线程同步机制之一,通过对共享资源加锁来确保同时只有一个线程可以访问共享资源。- 信号量是一种更广泛的线程同步工具,除了互斥作用外,还可以控制多个线程同时访问共享资源的数量。- 信号量可以是计数信号量(允许多个线程同时访问)或二进制信号量(只允许一个线程访问)。- 通常与互斥锁一起使用,等待线程在检查条件时会释放锁,当条件满足时,唤醒等待线程。
原创
发布博客 2024.03.05 ·
334 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

虚函数和纯虚函数

在 C++ 中,虚函数(Virtual Function)和纯虚函数(Pure Virtual Function)是面向对象编程中的重要概念,用于实现多态性和抽象类。- 包含纯虚函数的类称为抽象类(Abstract Class),不能被实例化,只能作为基类来派生其他类。- 虚函数是在基类中声明为虚拟的成员函数,可以被子类重写。- 纯虚函数是在基类中声明为纯虚拟的虚函数,没有具体的实现,在基类中只有声明,不需要定义函数体。- 使用纯虚函数可以定义抽象接口,强制派生类实现特定的函数,实现接口的统一规范。
原创
发布博客 2024.03.05 ·
253 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

C++之析构函数

在 C++ 中,析构函数(Destructor)是一个特殊的成员函数,用于在对象生命周期结束时执行清理工作和资源释放。析构函数的名称与类名相同,前面加上波浪号(~),不接受任何参数,也没有返回类型。在上面的示例中,当对象 `obj1` 和 `obj2` 超出作用域时,析构函数会被自动调用,输出相应的信息。这样可以确保在对象销毁时进行必要的清理工作,比如释放动态分配的内存、关闭文件等。需要注意的是,C++ 中如果一个类有指针成员或者需要手动管理资源,那么最好显式地定义析构函数来确保资源的正确释放。
原创
发布博客 2024.03.05 ·
284 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

ab二个字段都有索引,会导致索引失效吗?

1. 覆盖索引:如果其中一个索引是覆盖索引(Covering Index),即索引包含了查询所需的所有列,而另一个索引并不包含所有需要的列,数据库可能会选择使用覆盖索引而不使用第二个索引。3. 索引合并:有些数据库系统支持索引合并(Index Merge),即在某些情况下会将多个单列索引合并使用,但并非所有数据库都支持这种特性。当两个字段都有各自的索引时,一般情况下不会导致索引失效。在大多数情况下,如果两个字段都有索引,数据库系统会根据查询条件和统计信息来选择最优的索引来加速查询,而不会导致索引失效。
原创
发布博客 2024.03.05 ·
334 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

什么情况下导致索引失效

索引在数据库中起着加快数据检索速度的作用,但在某些情况下,索引可能会失效,即数据库系统无法有效地使用索引来加速查询。- 当查询条件中未使用索引列,或者对索引列进行了函数操作、类型转换等,数据库无法有效使用索引。- 如果索引列上的数据分布不均匀,某些值的重复率很高,数据库可能会放弃使用索引而进行全表扫描。= 等),会导致索引失效。- 当查询条件中的数据类型与索引列的数据类型不匹配时,索引也可能无法被使用。- 在多表连接查询中,如果连接条件的列没有索引,可能会导致索引失效。
原创
发布博客 2024.03.05 ·
914 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

聚集索引和非聚集索引区别

总的来说,聚集索引将数据行存储在索引的叶子节点中,减少了数据检索时的IO操作,可以提高查询性能;而非聚集索引只存储索引值和指向数据行的指针,需要额外的IO操作来获取数据行,但可以加速多种不同列的查询。- 聚集索引的叶子节点存储了表中的实际数据行,而不只是索引值。换句话说,表的物理顺序和聚集索引的顺序是一致的。- 非聚集索引的叶子节点存储的是索引字段的值以及指向实际数据行的指针。即索引值和数据行是分开存储的。- 当按照聚集索引的列进行查询时,数据库引擎会按照索引的顺序直接定位到数据行,提高查询效率。
原创
发布博客 2024.03.05 ·
470 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

MySQL主键索引的特点

3. **默认聚集索引**:在 InnoDB 存储引擎中,主键索引默认是聚集索引。5. **隐式约束**:主键索引在逻辑上也是一种约束,确保数据的完整性和一致性。7. **自动生成**:主键可以手动指定也可以自动生成。1. **唯一性**:主键索引要求列的值必须是唯一的,即该索引列中的每个值必须是唯一的,不允许重复值出现。4. **快速查找**:通过主键索引可以快速定位到表中唯一的一条记录,加快数据检索的速度。2. **非空性**:主键索引列的值不能为 NULL,确保每行数据都有一个唯一的标诋符。
原创
发布博客 2024.03.05 ·
241 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

与缓存相关的状态码

当客户端向服务器发送带有条件的 GET 请求(通常是包含 If-Modified-Since 或 If-None-Match 头部的请求),并且资源未发生变化时,服务器会返回状态码 304 Not Modified。这表示客户端缓存的版本仍然有效,无需重新获取资源,可以直接使用缓存。在缓存相关的情境下,404 状态码表示客户端缓存中的资源已经过期或不存在,需要从服务器重新获取。这些状态码是与缓存相关的一些常见情况,在处理缓存时需要根据不同的状态码来决定是否使用缓存、更新缓存或者从服务器重新获取资源。
原创
发布博客 2024.03.05 ·
501 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

http状态码,302,400

状态码 400 表示客户端发出的请求有错误,服务器无法理解。这通常是由于客户端发送的请求中包含无效的请求参数、格式不正确等问题导致的。客户端收到 400 状态码后,应该检查请求的格式和内容,进行修正后重新发送请求。服务器返回状态码 302 时,意味着所请求的资源已经被临时移动到另一个位置。客户端接收到该状态码后,会根据响应头中的 Location 字段指定的新 URL 发起新的请求。HTTP 状态码是指在 HTTP 协议通信过程中,服务器向客户端返回的状态码,用于表示服务器对请求的处理结果。
原创
发布博客 2024.03.05 ·
763 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

四次挥手的过程,为什么有timewait

4. 主动关闭方收到 FIN 报文后,发送 ACK 报文作为确认,进入 TIME_WAIT 状态。在这个状态下,主动关闭方等待 2MSL(Maximum Segment Lifetime) 的时间,确保最后一个 ACK 报文已经到达对端,防止对端没有收到 ACK 报文导致重传。TIME_WAIT 状态的存在是为了确保在网络中已经传输完成的最后一个 ACK 报文不会丢失,同时也为了防止之前的报文再次出现在网络中而引发混乱。1. 主动关闭方发送 FIN 报文给被动关闭方,进入 FIN_WAIT_1 状态。
原创
发布博客 2024.03.05 ·
225 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

快排是否稳定,为什么不稳定?

具体来说,当选择枢轴元素时,如果是不稳定的选择方式(例如选择第一个或最后一个元素作为枢轴),那么在分区的过程中,相同元素的相对位置可能会被打乱。另外,如果在分区过程中采用了不稳定的交换策略(比如直接交换而不是插入到合适位置),也会导致快速排序的不稳定性。快速排序(Quicksort)是一种不稳定的排序算法。其不稳定性主要来自在分区过程中对元素的交换操作。在快速排序的过程中,相同元素的相对位置可能会发生变化,导致最终排序结果中相同元素的顺序与初始顺序不同。
原创
发布博客 2024.03.05 ·
1002 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

常见的排序算法

具体来说,假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组的最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2不等于arr[1],则交换这两个数字,依次类推,直到数组arr有序排列。例如要将数组arr=[4,2,8,0,5,1]排序,可以将4看做是一个有序序列(图中用蓝色标出),将[2,8,0,5,1]看做一个无序序列。最简单的一种排序算法。
原创
发布博客 2024.03.05 ·
368 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

model view模型

模型/视图结构,仍然分离了数据与呈现给用户的方式,但提供了基于相同原理的简单框架。这种分离使得它可以在几个不同的视图中显示相同的数据,并且实现新类型的视图,而无需改变底层的数据结构。为了灵活地处理用户输入,则引入了委托的概念。在此框架引入委托的优点是:它允许项目数据显示和自定义编辑。模型与数据源进行通信,在这个体系结构中为其它组件提供了一个接口。通信的性质依赖于数据源的类型以及模型的实现方式。视图从模型中得到模型索引,这些都引用到数据项。通过为模型提供模型索引,视图可以从数据源中检索数据项。
原创
发布博客 2024.03.05 ·
899 阅读 ·
6 点赞 ·
0 评论 ·
19 收藏

Linux常见命令

注意:常用 rm –rf XXX,千万不能执行rm –rf / ,否则它会把你的系统文件全部删除,非常危险!tail还有一个重要的作用是用来显示文件中,实时新增的内容,方法如下:tail -f xxx。路径的写法一定由根目录 ‘/’写起,例如/usr/local/net-snmp.常用选项:-r 递归,复制子文件和子目录,一般用在复制目录。选项来查看帮助,例如:ls --help。常用选项:-b 显示行号,空白行不显示行号。搜索系统命令的命令,查找二进制命令,源文件和帮助文档的命令。
原创
发布博客 2024.02.29 ·
887 阅读 ·
10 点赞 ·
0 评论 ·
24 收藏

C++内存四区

的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。全局区还包含了常量区, 字符串常量和其他常量就是存放在常量区的。代码区用于存放二进制的 CPU 执行的机器指令。的,使其只读的原因是防止程序意外地修改了它的指令。该区域的数据在程序结束后由操作系统释放.C++程序在执行时,将内存大方向划分为。系统分为两个区域:代码区和全局区。在程序编译后,会生成可执行程序,不同区域存放的数据,赋予不同的。全局变量和静态变量存放在此。, 给我们更大的灵活编程。
原创
发布博客 2024.02.28 ·
273 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

qt之函数声明快速定位到函数定义处

方法三:鼠标右键找到(follow sysmbol under cursor)方法一:Ctrl+鼠标左键(基本所以IDE都适合)方法二:f2(对于笔记本f2+fn)
原创
发布博客 2024.02.26 ·
1055 阅读 ·
3 点赞 ·
0 评论 ·
13 收藏

DDS通信协议

它提供了以数据为中心的连接服务,基于发布者-订阅者模型。总体而言,DDS 提供了一种简便而强大的方式,让不同的设备和软件系统在实时、高效、可靠的环境中进行数据通信,使得各个部分协同工作,实现复杂的实时系统。设备或应用程序可以作为发布者发布数据,而其他设备或应用程序可以作为订阅者订阅并接收这些数据。QoS(Quality of Service): DDS 允许根据应用程序的需求配置数据传输的质量,包括可靠性、实时性、持久性等方面的参数。数据主题(Topic): 数据主题定义了要发布或订阅的数据的类型和结构。
原创
发布博客 2024.02.25 ·
1067 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

qt之菜单栏的文字添加(图片同理)

可以看到这里可以设置对应动作的快捷键(不设置则使用默认的快捷键,如CTRL+C表示复制等),双击可。
原创
发布博客 2024.02.02 ·
555 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

h.264与h.263的区别

采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。高质量的视频画面:H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。
原创
发布博客 2024.02.02 ·
758 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多