淡蓝色的经典
码龄4年
关注
提问 私信
  • 博客:46,817
    46,817
    总访问量
  • 85
    原创
  • 50,316
    排名
  • 34
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2021-03-02
博客简介:

qq_55703811的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    553
    当月
    10
个人成就
  • 获得96次点赞
  • 内容获得3次评论
  • 获得129次收藏
  • 代码片获得221次分享
创作历程
  • 2篇
    2024年
  • 42篇
    2023年
  • 41篇
    2022年
成就勋章
TA的专栏
  • Linux操作系统
    23篇
  • c++基础
    21篇
  • STL
    3篇
  • leetcode
    4篇
  • 数据结构与算法
    6篇
  • c语言
    15篇
  • 基础数据结构
    14篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

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

makefile编译

在涉及到C++和C语言代码需要混合编译的情况,首先要明确C代码和C++代码,在编译好C和CPP代码之后,在一起链接(在了解编译的时候,首先要了解程序运行的阶段预编译-编译-汇编-链接-生成可执行程序每一个阶段的过程)。1.什么是库:库相当于封装了函数与数据,提供给用户去调用,库是在编译时期形式,没有到链接这一步。$^: 在规则的命令中,表示所有依赖条件。gcc:编译C++代码时,不会自动链接C++标准库(libstdc++),需要手动链接选项。$@:在规则的命令中,表示规则中的目标。
原创
发布博客 2024.08.25 ·
1036 阅读 ·
30 点赞 ·
0 评论 ·
17 收藏

C++之函数传参方式

函数指针的定义:初始化函数指针函数指针做为函数参数进行传递的时候(回调函数)函数指针作为参数传递给其他函数的时候,提高了调用函数的灵活性。1.灵活性高:可以在运行时选择函数,实现更通用的代码设计2.可拓展性高:适用于回调机制和策略模式3.复杂度高:函数指针的使用容易增加代码的复杂性,尤其在涉及多个函数指针时,代码可读性降低4.安全性:若未正确使用函数指针,可能导致未定义的行为,导致程序崩溃函数指针作为函数的返回值返回值为函数指针的函数1.(*fun(int opt))是一个函数,函数名fu
原创
发布博客 2024.08.18 ·
1069 阅读 ·
20 点赞 ·
0 评论 ·
15 收藏

C++11多线程之条件变量

原因分析:并不是一运行就会出现这种情况,当出现图片中的这种情况的时候,原因是当两个互斥锁同时运行时,锁一被占用后,还没有释放锁的时候,锁二就继续占用锁一,出现了相互引用的情况,导致了死锁的出现。当wait状态执行到第二步时候,此时主线程获得锁,主线程向下执行,将tag的值变为true,此时再次到子线程,此时子线程向下执行,wait执行三、四步骤后,再次调用唤醒函数,主线程执行后续步骤。例题一:ABC三个线程分别打印出来ABC。例题三:A线程打印偶数,B线程打印奇数。甲向乙进行转账的同时,乙向甲进行转账。
原创
发布博客 2023.06.15 ·
893 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

C++11之多线程

可能的结果为:10,100,100,200 或者10,200,200,100或者10,10,100,200等。可能的结果为:10,100,100,200 或者10,200,200,100或者10,10,100,200等。主线程不会等待子线程结束,如果主线程运行结束,程序结束。检查当前线程是否处于活跃状态。
原创
发布博客 2023.06.11 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++11之异常处理

注释:代码来自图论教育。
原创
发布博客 2023.06.04 ·
845 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++STL库之map

队列的底层实现可以为双端队列,或者list,但是不允许为vector,因为vector没有pop_front的方法。operator[]:通过关键码查询值,如果找不到,则在红黑树中构建一个元素,并且将value的值赋值0。在map中进行查找,找到则返回该关键码迭代器,未找到则返回simap.end()既可以在尾部插入,也可以在头部插入(栈没有迭代器,不能进行迭代)为什么打印出来的数据为:12,23,34,45,56,67?用map统计文件中单词的个数,并进行排序(状态机)set:底层也是红黑树实现的。
原创
发布博客 2023.06.04 ·
876 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++STL之vector与list

容量按照1.5倍增加,容量增容意味着要不断的创建空间,并且不断调用移动构造函数,和不断将对象析构,效率太低,可以直接调用reserve。(提前获取vector的大小,预留好空间)如果需要高效的随机存取,选择vector(深入理解计算机系统1,6,9章)在相同的空间中,vector的存储密度比List的存储密度大。场景题目二:刷视频,如何让视频刷的更快(生产者消费者模型)List的排序算法(当排序量较少是,一般采用快排)迭代器失效,指针指向的对象已经被释放掉。关于vector里面存放指针的情况。
原创
发布博客 2023.06.01 ·
594 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++四种类型转化

该运算符把expression转化为type_name类型,static_cast在编译时使用类型信息执行转换,在转换执行必要时的检测(如指针越界,类型检查),但没有运行时类型检查来保证转换的安全性。2.如果针对指针类型的dynamic_cast失败,则dynamic_cast的结果是nullptr。1.与C++支持其他强制转化的不同的是,dynamic_cast是在运行时执行的动态类型转换。4.在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的。
原创
发布博客 2023.05.27 ·
715 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode每日一题之209长度最小的子数组

那么for循环里面是起始位置还是终止位置呢?此时我们需要探讨,如果for循环里面是起始位置,那么又会陷入暴力求解,所以我们将终止位置j放入for循环里面,而在for循环的里面我们设置起始位置,从而形成了滑动窗口。暴力求解法的思想:每一次遍历数组,然后更新result的值,一个for循环作为起始位置,一个for循环作为终止位置,用两个for循环完成了不断搜索区间的过程。时间复杂度:O(n),空间复杂度O(1),为什么时间复杂度为O(n)呢?暴力求解法:时间复杂度O(n^2),空间复杂度O(1)。
原创
发布博客 2023.05.24 ·
69 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leecode之977.有序数组的平方

先给每一个数平方(包括负数),在排序,此方法的时间复杂度根据排序的时间复杂度确定,如果为冒泡则为O(n+n^2),如果为快排则为O(n+nlogn)指向最后一个元素,由于数组是有序的,所以,它的最大元素一定是在两边,此方法时间复杂度为O(n)指向第一个位置,指针。思路二:双指针的解法。
原创
发布博客 2023.05.19 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode每日一题之移除元素

定义快慢指针,快指针遇到要删除的元素跳过,但快指针始终加一,慢指针只有在满足条件的时候才需要加一。主要思路:跳过要删除的元素。
原创
发布博客 2023.05.19 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode每日一题之二分搜索

【代码】LeetCode每日一题之二分搜索。
原创
发布博客 2023.05.18 ·
347 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++之设计模式

一个小女孩过生日,问爸爸要生日礼物,爸爸没给,然后继续问妈妈要,妈妈也没给,继续问爷爷要,爷爷也没给,直到问奶奶要,奶奶把生日礼物给她了。例题:井底下有一只青蛙,一位小女孩和青蛙kiss之后,青蛙变为了王子,如果小女孩不情愿,则青蛙变为小狗。以空格为界限,求单词的个数。
原创
发布博客 2023.05.16 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++之构造函数与虚析构函数

1.虚函数调用只需要“部分的信息”,即只需要知道函数的接口(函数返回类型,函数名,参数列表),而。根据赋值兼容性规则,可以用基类的指针指向派生类的对象,如果使用基类指针指向。派生类的对象,由该基类指针撤销派生类对象,则必须将析构函数设置为虚函数。如果你调用一个虚构造函数,编译器不知道你要构造的继承树上的那种类型。
原创
发布博客 2023.05.15 ·
461 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL容器之deque

deque是“double-ended queue”的缩写,和vector一样都是STL的容器deque是双端数组,而vector是单端的deque在接口上和vector非常相似,在许多操作的地方都可以直接替换deque可以随机存取元素(支持索引直接存取,用 []操作符或at()方法)deque头部添加或移除元素都非常快,但是在中部插入删除元素比较费时在实际应用中,如果频繁的对头部操作,才用到deque。
原创
发布博客 2023.05.14 ·
512 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL之迭代器

迭代器是一种检查容器内元素并且遍历容器内匀速的数据类型。
原创
发布博客 2023.05.14 ·
527 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++多态练习题

引发了异常,原因是将对象赋值给空间,系统只负责将数据赋值,不进行虚函数指针的赋值,也就是说虚表指针仍然是随机值,解决方法一:去掉虚函数。4.[edx+8],edx代表虚表里面的首地址add函数,+8就是指针偏移8字节,此时指向的print函数,并将print函数给eax。此时我们发现base并没有被析构掉,造成内存泄露,解决办法是将Object的析构函数设置为虚函数。3.op所指之物给ecx(test的this指针执向了vptr),并将vptr的地址给了ecx。解决办法二:定位new。
原创
发布博客 2023.05.14 ·
1202 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

C++之多态与虚函数

函数的重写,函数参数,函数名,函数返回类型必须相同(函数重写是同名覆盖的一种特殊情况)总结:运行时多态性,公有继承+虚函数+(指针或引用调用虚函数)函数的重写:(同名覆盖)
原创
发布博客 2023.05.08 ·
509 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++之初识STL—vector

尾部插入速度比较快vector是将元素置于一个动态数组中加以管理的容器vector可以随机存取元素(支持索引值直接存取)vector尾部添加或移除元素的速度非常快速,但是在头部插入或移除元素比较费时。
原创
发布博客 2023.05.07 ·
697 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++之单例模式

保证一个类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。
原创
发布博客 2023.05.07 ·
533 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多