- 博客(21)
- 收藏
- 关注
原创 (i++)++为什么被砍掉了,++i的效率哪里就高了
我们可以把一个整形数据(无论是int 、double、 char 还是 string)想象成一个类,只是编译器早已经知道了我们如何进行操作,如何进行++它是由于编译器已经给出了规定的操作,我们只需要按照要求去进行操作,不需要我们自己再去写而已所以我们可以自己写一个整形数据,去了解++i的效率为什么比i++的效率高前置递增 and后置递增前置递增: 先参与运算,再进行递增后置递增: 先进行递增,再参与运算前置递增
2020-11-23 15:35:02
584
原创 C++职工管理系统 VS C职工管理系统
职工管理系统这两天在B站上看c++,看到老师写了一个职工管理系统,整体框架都在,结果写了一个c风格的职工管理系统,然后就又看着老师的管理系统来了一遍写职工管理系统的时候C++的优势一下就体现出来了c++ 代码可以解决升级指针调用麻烦的问题,一个类中加入指针,可以在类函数中解决掉升级指针的问题,变量也可以在不同的函数中共享,在c语言中就必须去升级指针去在不同的函数中调用,对于普通变量如果不去加入指针就要去使用全局变量。由于有了父类,就可以在父类中去写不同职工之间相同的内容(姓名,编号,职位),提
2020-11-20 00:24:25
682
2
原创 安装好一个ubuntu后需要做的各种事
本来想着安装好ubuntu后终于可以愉快的敲代码了,没想到遇到了好多的问题,希望不要再重装系统了,真的头疼问题类型1.显卡驱动问题2.亮度无法调整问题3.没有html5播放器(下载flash,b站看视频无法倍速播放)4.vscode安装好怎么看怎么蹩脚问题解决显卡驱动问题如果自己的电脑安装好ubuntu系统之后开机后花屏,多半是显卡问题了如果安装好后无法进入ubuntu,可以看看下一行学姐的这篇文章,手动感谢学姐的博客太强了,点点点linux不能使用N卡,使用N卡各种各种臭问题,直接
2020-10-26 17:23:39
1303
原创 聊天室---------数据库、部署服务器篇
数据库在写聊天室的时候,会经常用到关于数据库的操作,一不小心就会出错,给大家盘点一些易踩坑点操作数据库段错误查询出的数据异常怎么判断查询数据为不存在数据未加入表操作数据库段错误起初对数据库的操作不熟悉,写了一个创建链接数据库的函数(accpet_mysql) 这个函数MYSQL accept_mysql(){ MYSQL mysql ; //初始化句柄 if(NULL == mysql_init(&mysql)) my_err("mysql_init
2020-08-17 11:41:13
1612
原创 deepin20风扇声音大,吃系统盘内存解决方法(iwlwifi Unhandled alg:0x707)
第一次安装deepin20后,用了一天左右发现风扇一直在转,用df命令查看内存空间,发现挂载系统盘的内存不断在上升,最后会导致系统崩溃关掉wifi和有线网卡,风扇也就慢慢不转了,但是这总归不是长久之计解决方法:切换到root用户下执行命令dmesg如果是这种情况,就可以执行下面的操作了rm /etc/modprobe.d/iwlwifi.conf删掉这个文件后,再用demsg命令查看,果然没有这个怪东西了我看系统帮我修复了一部分文件,如果大家觉得内存被吃掉的比较多的话,
2020-07-24 12:06:44
3947
原创 c语言链接找不到mysql.h的解决方法(安装Mysql却是Mariadb)
自己用的是deepin系统,很不想用mariadb(虽然不了解这个东西,但好像还是更喜欢mysql),所以在网上一直找怎么去卸载mariadb,安装mysql试了很久,都没有成功,在网上看说是deepin里全都用的是mariadbtestdb.c:3:10: fatal error: mysql.h: 没有那个文件或目录#include “mysql.h”^~~~~~~~~compilation terminated.所以自己只好去找mariadb,无法找到mysql.h的原因找不到mys
2020-07-21 15:11:29
1334
原创 windows程序移植到linux的方式和会遇到的问题
windows程序移植到linux的方式和会遇到的问题怎么移植写一个makefile文件足矣解决这些问题,执行make在结果中去找问题,外加修改即可,所以就不过多的赘述了移植时可能遇到的问题以下是我在移植时遇到的问题1.sleep函数2.getch()和getche()函数在linux下不兼容3.头文件包含不同4.乱码问题5.对于缓冲区的控制6.如该程序需要输入密码,linux如何控制回显和退格删除错误字符7.gets函数的危险性1.sleep函数在windows中Sle
2020-07-17 21:06:20
2828
原创 堆排序,归并排序
堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。因为这种排序方式为堆排,所以肯定要先创建一个堆堆排序分为两个步骤:1、堆排序需要一个大顶堆(每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆)void heapify(int tree[],int n,int i){ int max = i; int c1 = 2 * i + 1; int c2 = 2 * i + 2;
2020-06-23 09:38:01
329
原创 线程池分析及原理 C语言
线程池的作用:第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程池的组成部分:1、线程池管理器 : 用于创建并管理线程池2、工作线程: 线程池中线程3、任务接口:每个任务必须实现的接口,以供工作线程调度任务的执行。4、任务队列:用于存放没有处理的任务。提供一种缓冲机制。对程序进行整体分析:1、在主函数中:-> 先对线程池进行初始化,初始化各个数据
2020-06-06 14:02:26
329
原创 消费者生产者问题,哲学家问题
消费者和生产者问题生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。分析:1、对于变量empty和full 是去控制缓冲区产品的数量,防止超出缓冲区的大小假如现在只
2020-06-06 13:18:26
406
原创 fork都做了些什么?循环fork,fork时的文件操作,详解
fork函数fork函数是创建新进程的一种方式,虽然vfork函数也可以创建新进程,但在创建进程时还是调用了fork函数一般情况下,一个函数最多有一个返回值,但是fork函数比较特殊,有两个返回值,即调用一次返回两次。成功调用fork函数后,当前进程实际上已经分裂成为两个进程,一个是原来的父进程,另一个是刚刚创建的子进程。父子进程在调用fork函数的地方分开,fork函数有两个返回值,一个是...
2020-04-17 09:13:37
1518
原创 ls实现( 包含 颜色 -a -l -r -R -i -s等)
ls 命令的实现需要不断的在函数之间调用,所以一定要把握住每个函数要的参数实现-a -l -R等参数的思想1、-a需要显示出所有的文件 ,包括隐藏文件,所以ls 和 ls -a的区别就在于显不显示隐藏文件2、-l需要显示出文件的详细信息,不包括隐藏文件,所以需要去获取到文件的信息(通过函数 lstat(const char *name,struct stat buf)获取文件属性信息,获取成...
2020-04-04 23:36:53
643
原创 linux档案与文件系统的压缩与打包
档案与文件系统的压缩与打包compress压缩后缀为.ZCompress 文件名 对文件进行压缩Compress -v 文件名 压缩文件并且显示过程Uncompress 文件名.Z ...
2020-03-31 22:12:14
449
原创 关于linux
Linux对于命令 一个- 代表选项 – 代表单词使用;连接多个命令主目录用~表示#代表root用户$代表一般用户Ls list命令参数Ls -1将文件一行一个的显示出来Ls -a将所有文件显示出来Ls -l将文件长型显示出来 (一行一个并显示具体信息)Ls -s显示文件的大小Ls -h显示文件大小和单位Clear cont...
2020-03-30 14:24:16
153
原创 背包问题(适合初学者,包含从二维到一维)
背包问题所有的背包问题都可以归结到01背包对于01背包化为一维使用逆序看01逆序原因01背包只有选或不选,完全背包可以选任意件,多重背包最多选指定的件数01背包01背包只需要考虑取或者不取,所以最简单f [ i ] [ j ]=max(f[ i-1 ] [ j ],f[ i-1 ] [ j - v [ i ] ] +w [ i ] );前者表示不取,后者表示取转化为...
2020-03-14 00:10:45
354
原创 XiyouLinux2018,2019面试题
2018面试题下面是一个 C 语言程序从源代码到形成可执行文件的过程,请解释图中的 ABCD 分别表示什么,在每个阶段分别完成了什么工作?
2020-03-11 22:30:42
199
原创 Xiyou Linux Group 2017,2018,2019面试题
西邮Linux2017纳新题1.//分析下列程序的输出int main(int argc, char *argv[]){int t = 4;printf("%lu\n", sizeof(t--));printf("%lu\n", sizeof("ab c\nt\012\xa1*2"));return 0;}//输出为4 11分析:1.sizeof测量的是数据类型的大小 ,...
2020-03-06 21:46:58
356
原创 二维数组,多维数组和指针间的关系
二维数组和指针个人认为二维数组和指针的关系首先要记住一句话指针变量的加减,是以指针所指向的类型空间为单位进行偏移结合这句话和下面的表格 可以很好的理解二维数组和指针定义一个二维数组 int a[3][4]a指向a[0]这个一维数组a[0]可以看做是一维数组的数组名a[0]指向的是a[0][0]内容指向+1后跨越的字节数&a指向二维4*12B...
2020-03-03 00:22:06
160
原创 python绘制图形
Python绘制图形turtle库的引用一、引用库函数 import +要引用的函数二、窗体布局及空间坐标系1.turtle.setup(width,hight,startx,starty)width表示窗体的宽度 hight表示窗体的长度startx表示窗体左边框距离屏幕最左侧的距离 starty表示窗体上边框距离屏幕最上侧的距离。(startx和starty可省略)...
2019-12-22 21:07:10
592
原创 git的基本使用方法
gitgit让你更方便的了解你对文件的更改尤其是别人对你的文件进行了修改 你可以很清楚的知道他的改动1.通过git add 文件名 将文件传输到暂存区。2.通过git commit -m “需要添加的注释”将文件传输到当前分支。3.若文件已经提交到了当前分支,该怎么回退到曾经的版本?第一步:通过git log 去查看曾经的版本号 。第二步:再输入git reset --ha...
2019-12-16 09:51:50
117
原创 Markdown及vim的基本使用
实验室第一周这周零碎的学习了很多东西,但都并不深入。写下这些东西进行巩固,作为这周的收获。Markdownmarkdown是一个十分方便的记录软件了解了markdown你会很方便的记录你想记的东西简单语法1.强调文本 :在文本两侧加入*或—(一侧一个)2.加粗文本 :在文本两侧加入*或—(一侧两个)3.标记文本 :在文本两侧加入=(一侧两个)4.删除文本:在文本两侧加入~(一侧...
2019-12-02 14:43:56
416
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人