自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Firefox国际版

Firefox国际版官方网址

2024-05-22 16:26:56 276

原创 谷歌浏览器

得益于 Google 智能工具,Chrome 现在更易用、更安全、更快速。Google Chrome 网络浏览器。

2024-05-22 14:34:16 394

原创 Qt初识

Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse.Qt Creator 是⼀个轻量级的跨平台集成开发环境(IDE),专为使⽤ Qt 框架进⾏应⽤程序开发⽽设计。它是⼀个功能强⼤、易于使⽤、快速且⾼效的⼯具,被⼴泛⽤于编写各种类型的应⽤程序,如桌⾯应⽤程序、移动应⽤程序和嵌⼊式系统等。Qt Creator 提供了⼀个可视化的界⾯设计器和代码编辑器,可以帮助开发者更快捷地创建复杂的⽤⼾界⾯和处理各种事件。

2024-05-15 12:19:22 937

原创 数组中两个字符串的最小距离

输入包含有多行,第一输入一个整数n(1 ≤ n ≤ 10^5),代表数组strs的长度,第二行有两个字符串分别代表str1和str2,接下来n行,每行一个字符串,代表数组strs(保证题目中出现的所有字符串长度均小于等于10)给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。时间复杂度O(n),额外空间复杂度O(1)输出一行,包含一个整数,代表返回的值。解法一:暴力解法(这里不举例)

2024-05-08 15:53:55 275

原创 最小花费爬楼梯

给定一个整数数组 cost ,其中 cost[i]是从楼梯第 i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。数据范围:数组长度满足1 ≤ n ≤ 10^5,数组中的值满足1 ≤ cost[ i ] < 10^4。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。第一行输入一个正整数n,表示数组cost的长度。第二行输入n个正整数,表示数组cost的值。请你计算并返回达到楼梯顶部的最低花费。

2024-04-29 09:15:29 198

原创 快递费

如果正在寄快递,他了解到快递在 1kg 以内的按起步价20元计算,超出部分按每kg按1元计算,不足1kg部分按1kg计算。如果加急的话要额外付五元,请问总共要支付多少快递费。第一行输入一个单精度浮点数a和一个字符b,a表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,"y’表示加急,'n’表示不加急。输出总共要支付的快递费用。

2024-04-28 09:08:46 247

原创 点击消除

如果想把字符串变得尽可能短,当点击了足够多次之后,字符串的最终形态是什么?对一个字符串,每次“点击”,可以把字符串中相邻两个 相同字母消除。一个字符串,为”点击消除“后的最终形态。若最终为空串,则输出0.一个字符串,仅由小写字母组成(字符串长度大于300000)但相同而不相邻、不相同的相邻字母都是不可以被消除的。例如,字符串"abbc"点击后可以生成"ac"。细节:用可变长的数组,来模拟栈结构。

2024-04-27 14:49:39 464

原创 数字统计

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。** 一定要加,不然 i 的值随着第一次while循环的结束就变成了0,再次经过第二次for循环时,i++就变成了 0++,变成了1.示例2: 输入:2 100 输出:20。示例1: 输入:2 22 输出:6。输出共1行,表示数字2出现的次数。

2024-04-26 09:13:24 218

原创 进程动静态库

动态库再进程运行的时候,是要被加载的(静态库没有)。常见的动态库被所有的可执行程序(动态链接的)都要使用,动态库 ——— 共享库。将自己库所在的路径,添加到系统的环境变量LD_LIBRARY_PATH中(默认是没有的,如果有可能是因为其他原因系统默认添加了)如果添加了配置文件,将不会随着关机重启而还原,配置文件一旦添加将永久拥有,除非自己删除!实际情况,我们用的库都是别人的成熟的库,都采用直接安装到系统的方式!我这里是因为配置过vim自动添加的,默认是没有的!​ 以so为后缀的文件就是生成的动态库了!

2024-04-25 03:00:00 1036

原创 文件描述符

先来段代码回顾C文件接口其中strlen不需要加 1, \0 结尾是c语言的规定,文件要保存的是有效数据, \0 只是结束标识符。当以w模式打开文件时,第一件事是先清空文件然后再打开!若以a模式打开文件,实则是在结尾追加内容!输出信息到显示器,你有哪些方法显示结果:什么叫做当前路径?当一个进程运行起来时,这个进程都会记录自己当前所处的工作路径!ps axj查看进程再 ls /proc/ 进程 查看cwd就是当前路径的变化将查看到的cwd路径与当前pwd路径先对比,是完全一样的!!C默认会打开三个

2024-04-24 09:34:26 876

原创 stl_list

list文档介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。

2024-04-23 09:03:21 778

原创 stl_map

map官方文档map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型value_type绑定在一起,为其取别名称为pair: typedef pair<const key, T> value_type;在内部,map中的元素总是按照键值key进行比较排序的。

2024-04-22 04:00:00 842

原创 stl_set

set文档介绍翻译:set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。

2024-04-21 04:00:00 718

原创 模板(二)

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。

2024-04-20 09:30:09 1241

原创 c++多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。

2024-04-19 09:43:18 121

原创 求和_方阵

【代码】求和_方阵。

2024-04-18 06:15:00 342

原创 c++继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用public:protected:protected:int _stuid;s.Print();return 0;

2024-04-17 12:11:23 342

原创 进程控制(二)

首先,这里我们先写一个简单的指令代码:if(argc!= 2)\n");\n");\n");else\n");return 0;如果只是按照正常的方式将mycmd文件也加入到makefile文件中,也是默认执行第一个exec文件,.PHONY:all那么,我们如何用exec执行mycmd文件指令呢?16//这里输入pwd查到的路径,最后面再加上想要调用的文件指令名称int main()printf("子进程开始运行,pid:%d\n", getpid());

2024-04-16 04:00:00 272 1

原创 vscode远程连接centos

点击左边栏中的打开文件夹,便显示出了你的linux中的全部文件夹啦!我的是centos7,ip地址在inet内显示出来!选择你想要打开的目录,点击确认即可!点击刚才配置好的centos7。

2024-04-15 04:00:00 350 3

原创 vscode配置c\c++及美化

编写好cpp文件后,点击终端 ---->> 配置任务 ---->> g++.exe生成活动文件。也可以直接再新建一个文件夹进行编写代码,不过为了方便,可以直接将上诉文件中的。” ,可以把编译输出的文件名为:打开的工作区的文件夹名字.exe的形式。如果是编译多个c++文件,跟编译多个c文件同理,这里不过多介绍!在自己常用的路径中,创建一个写代码的文件夹,用vscode打开。文件直接粘贴到新目录中也是完全可以的,这里就不进行演示了!,就是键盘左上角esc下面那个按键,在弹出的终端窗口中输入。

2024-04-14 04:00:00 721

转载 Markdown编辑器使用(自用)

如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。说明:此为markdown的欢迎页我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + Shift + H无序列表:C

2024-04-13 04:00:00 9

原创 stack类介绍

stack介绍文档翻译:stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。empty:判空操作back:获取尾部元素操作push_back:尾部插入元素操作pop_back:尾部删除元素操作。

2024-04-12 04:15:00 547

原创 进程控制(一)

完成了进程的独立性的技术保证!执行return n等同于执行exit(n),因为调用main的运行时函数会将main的返回值当做 exit的参数。通常,父子代码共享,父子在不写入时,数据也是共享的,当任意一方试图写入,便以写时拷贝的方式各自一份副本。,其中内核数据结构通常由操作系统维护,而进程代码和数据一般从磁盘中来,也就是c/c++程序加载之后的结果!main函数的返回值也叫进程退出码,其返回给上一级进程,用来评判进程执行结用的,可以忽略。对代码而言:都是不可被写的,只能读取,所以父子共享,没有问题!

2024-04-11 04:00:00 887

原创 linux地址空间

我们发现,输出出来的变量值和地址是一模一样的,很好理解呀,因为子进程按照父进程为模版,父子并没有对变量进行进行任何修改。可是将代码稍加改动。在堆和栈的地址空间有着很大的差距,再根据地址图标不难发现,中间的差距就是空出的偌大的共享区空间!我们发现,父子进程,输出地址是一致的,但是变量内容不一样!从输出结果可以看出程序的地址空间大小是逐渐递增的!前面所说‘程序的地址空间’是不准确的,准确的应该说成。可是我们对他并不理解!

2024-04-10 04:00:00 676

原创 list介绍及使用

list文档介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。

2024-04-09 04:00:00 860

原创 linux环境变量

上面获取环境变量的方式都太复杂,此时使用系统自带的获取环境变量的函数 **getenv() ** 在获取更为简单。每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串。虽然暂时不知道这些环境变量有什么用,但是我们知道可以通过main函数来输出环境变量的值了。,当然如果就是想使用make指令编译代码,也可以在make指令后面加。如果想查看自己linux的环境变量,输入。很容易就获取了PATH的环境变量参数!这就是系统给进程传入的环境变量!

2024-04-08 04:00:00 573

原创 vim美化配置(懒人版)

为了使用编写程序的格式更加舒适,我们还有再来重新设置一下vim的缩进大小vim .vimrc使用vim指令修改第50行开始的这三个数据:将这三个其中的2全部改为4,并保存退出!!!如图:这时vim配置便大功告成了!!!!

2024-04-07 05:00:00 538

原创 状态优先级

的进程状态为S+状态,也即睡眠状态。看看Linux内核源代码怎么说。此时发现进程便为了R状态!Z(zombie)-僵尸进程。

2024-04-06 05:00:00 2168

原创 Linux进程

计算机管理硬件描述起来,用struct结构体组织起来,用链表或其他高效的数据结构。

2024-04-05 04:00:00 983

原创 Linux项目自动化构建工具 --- make/Makefile

如果func文件不存在,或是func所依赖的后面的hello.o文件的文件修改时间要比func这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成hello这个文件。当然,你的C文件和H文件是存在的啦,于是make会生成 func.o 文件,然后再用 func.o 文件声明make的终极任务,也就是执行文件func了。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。

2024-04-04 05:00:00 1067

原创 Linux调试器-gdb使用

文章目录Linux调试器-gdb使用1.背景2.开始使用3.理解Linux调试器-gdb使用1.背景程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项2.开始使用gdb binFile 退出: ctrl + d 或 quit 调试命令:list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。list/l 函数名:列出

2024-04-03 07:00:00 421

原创 Linux编译器 --- gcc/g++使用

我们编译c文件时,通常使用-o选项。

2024-04-03 05:30:00 923

原创 linux编辑器——vim使用方法

三种模式正常模式插入模式底行模式vim操作打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

2024-04-02 05:00:00 1149

原创 Linux软件包管理器yum

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

2024-04-01 05:00:00 701

原创 Linux权限管理

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

2024-03-31 05:00:00 1039

原创 shell命令运行原理

你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户,不能直接使用kernel。

2024-03-30 05:00:00 519

原创 vector类(二)

声明和定义均在头文件(自己创建的vector.h中进行,主函数仅调用函数。首先自定义构造vector类的默认成员变量和函数。

2024-03-29 05:00:00 673

原创 vector类(一)

vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小。为了增加存储空间,其做法是,分配一个新的数组,然后将全部元素移到这个数组。

2024-03-28 05:00:00 1068

原创 String类(三)

声明和定义均在头文件(自己创建的string.h)中进行,主函数仅调用函数。此时如果需要进行字符串复制拷贝,便需要进行构造拷贝函数。首先自定义构造string类的默认成员变量和函数。赋值不止有这种,当然还有**=**号进行赋值拷贝。

2024-03-27 06:00:00 604

原创 模板(一)

class 类模板名// 类内成员定义class Vector // 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public:, _size(0){}~Vector();//使用析构函数演示:在类中声明,在类外定义。template // 注意:类模板中函数放在类外进行定义时,需要加模板参数列表。

2024-03-26 14:11:10 885

空空如也

空空如也

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

TA关注的人

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