- 博客(44)
- 收藏
- 关注
原创 Linux_文件IO深入剖析
1. Linux 文件系统基本概念 2.文件IO 访问方式概述 注意: 更好的方式: 缓存同步 缓存同步 -为了保证磁盘系统与缓冲区中内容一致,Linux 系统提供了 sync、fsync 和fdatasync 三个 函数. 函数描述:向打开的文件写数据; 成功返回写入的字节数,若出错,返回-1。 头文件:#include <unistd.h> int fsync(int fd); int fdatasync(int
2023-04-11 22:36:12
140
原创 Linux下_多线程
条件的检测是在互斥锁的保护下进行的。如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,重新获得互斥锁,重新评价条件。家庭内的各成员同时做各自的事情(父亲工作、母亲持家、小孩上学)而对于家庭外部的人来说,这个家庭同时在做多件事情,家庭内的每个成员,就是一个线程。多个进程间不会直接共享内存线程是进程的基本执行单元,一个进程的所有任务都在线程中执行,进程要想执行任务,必须得有线程,进程至少要有一条线程,程序启动会默认开启一条线程,这条线程被称为主线程或 UI 线程。
2023-04-11 22:35:45
510
原创 C语言时间计算函数
#include<iostream> #include<algorithm> using namespace std; void fun(int i) { for (int k = 0; k < i; k++) { cout << k * 5 << endl; } } int main() { clock_t start, stop; start = clock();//开始计时 fun(10); stop = clock
2022-03-15 10:36:00
807
原创 Linux项目准备工作
Makefile 编写 程序的编译和链接 使用C、C++编写可执行程序,首先要把源文件编译成中间代码文件,Linux下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 一个项目,拥有成百上千的源程序文件,编译链接这些源文件都是由规则的,Makefile闪亮登场!Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编译”。make是一个解释makefile中指令的命令工
2021-10-19 23:55:15
383
原创 项目--mimi_http服务器
这里的html的页面可以自己去搜索一个,但是需要注意的是在linux系统上的文件路径和代码上需要一致,不然会报错!!! #include<stdio.h> #include<errno.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<string.h> #include<ctyp
2021-08-23 16:15:50
642
原创 QT5.15.1连接MySQL8.0.23数据库
1.首先安装好Mysql数据库,我用的是解压版的,设置数据库密码那些自行百度; 2.添加环境变量: 控制面板\系统和安全\系统\高级系统设置\环境变量\选中Path路径点击编辑\把mysql的bin目录添加进来 3.数据库安装好后安装QT5.14.1(我的版本),安装时需要勾选sources这个选项; 注意:安装的数据库是64位还是32要与QT安装的是64位还是32要一致; 4.打开QT安装目录下的mysql.pro文件 E:\QT\5.15.1\Src\qtbase\src\plugins\sqld
2021-03-18 11:36:38
443
原创 MySQL数据库学习记录
1.下载安装可以自行在百度搜索,这里不做讲解!!! 2.在CMD命令行查看MySQL是否启动使用 net start 3.关闭MySQL使用 net stop MySQL, 如果有错误提示,就使用管理员的权限运行CMD命令行; 4.启动MySQL 使用 net start MySQL ; ...
2020-10-13 02:34:41
261
原创 C++类型转换
C++类型转换 旧式转换类型 C风格的强制类型转换: Type B = (Type)a; 例: int i=48; char n = (char) i; 新式类型转换C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用 格式: Type b = 类型操作符(a); 类型操作符有: static_cast, reinterpret_cast, dynamic_cast, const_cast; 1.static_cast 静态类型转换(斯文的劝导,温柔的转换), 如 int 转换成char; 主要
2020-06-19 19:14:25
163
原创 C++指针(含智能指针)
指针简单的理解就是一个存放地址的变量,在C++中可以通过指针来操控内存; 指针的作用: 1.函数的值传递,无法通过调用函数,来修改函数的实参 ; 2.被调用函数需要提供更多的“返回值”给调用函数 ; 3.减少值传递时带来的额外开销,提高代码执行效率; 注意: 在32位系统中, int类型占4个字节,指针占4个字节; 在64位系统中, int类型占4个字节,指针占8个字节; 指针的定义: 普通指针 #include <iostream> using namespace std; int mai
2020-06-12 23:38:32
867
原创 练手小项目
1.使用Eaxys实现的小游戏,参考于爱消除 #include <graphics.h> #include <conio.h> #include <time.h> #include <string> #include <iostream> #pragma comment(lib,"Winmm.lib")//加载音乐的库 //定义7种颜色...
2020-05-05 21:58:10
344
原创 查找算法
查找定义 查找 又称检索或查询,是指在查找表中找出满足一定条件的结点或记录对应的操作。 查找表 在计算机中,是指被查找的数据对象是由同一类型的记录构成的集合,如顺序表, 链表、二叉树和哈希表等 ; 查找效率 查找算法中的基本运算是通过记录的关键字与给定值进行比较,所以查找的效率 同常取决于比较所花的时间,而时间取决于比较的次数。通常以关键字与给定值进行比较的记录 个数的平均值来计算。 查找操作及分...
2020-04-08 18:08:14
231
原创 七大排序算法
选择排序 根据自身的需求,选择的一种排序方法,如:从小到大排序,或从大到小排序 #include <iostream> #define Type int //位置交换函数 void swap(Type* ptr1, Type* ptr2) { Type tmp = *ptr1; *ptr1 = *ptr2; *ptr2 = tmp; } //实现排序(从后面开始大到小排序...
2020-04-04 23:56:27
143
原创 树
树 树状图是一种数据结构,它是由 n(n>=1) 个有限节点组成一个具有层次关系的集合,把它叫 “树” 是因为它看起来像一颗倒挂的树,也就是说它是根朝上,叶超下的,它具有以下特点: 1.每个节点有0个或多个子节点: 没有父节点的节点称为根节点, 每一个非根节点只有一个父节点,除了根 节点外,每个子节点可以分为多个不相交的子树: 专业术语 中 文 ...
2020-04-03 22:57:10
151
原创 栈
栈 栈是一种线性表,只不过它是受限的线性表,只能在一端操作,进出的一端为栈顶,另一端为栈底,栈可以用顺序存储,也可以用链式存储,进去方式为先进后出,后进先出, 注意: 栈只能在一端操作,所以不可以在中间查找,取值,插入,删除等操作,我们只需要掌握初始化,入栈,出栈 取栈顶元素等操作就可以了; 一般可以应用在回溯法算法中, 回溯法:对一个包括有很多个结点,每个结点有若干个搜索分支的问题,把原问...
2020-04-03 22:55:40
104
原创 堆
堆算法 特点: 1.每个节点最多可以有两个节点; 2.根节点的键值是所有堆节点键值中最大者,且每个根节点的值都比其子节点的值大; 3.除了根节点没有兄弟节点,最后一个左节点可以没有兄弟节点,其他节点必须要有兄弟节点; 计算公式: i的子节点左节点的位置: 2i+1; i的右子节点位置: 2i+2; i的父节点位置: (i-1)/2 (都是取整数的); #include <stdio.h&g...
2020-04-03 22:54:29
125
原创 队列
队列 队列是一种受限的线性表,(Queue),它是一种运算受限的线性表,规则是先进先出; 1.队列是一种受限的线性结构 2.它只允许在表的前端(front)进行删除,在表的后端(rear)进行插入操作; 数组实现队列: #include <iostream> #include <string> using namespace std; //创建一个数组队列 typede...
2020-04-03 22:52:26
230
原创 链表
链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必相邻,逻辑上的相邻可以给每个元素附加一个指针域,指向下一个元素的存储位置; 链表的核心元素: 1,每个节点由数据域和指针域组成; 2,指针域指向下一个节点的内存地址; 3.在企业中应用于在linux内核中,有大量的数据结构需要用到双向链表,如:进程,文件,模块,页面等; 若采用双向链表的传统实现方式,需要为这些数据结构维护各自的链...
2020-04-03 22:46:06
150
原创 五大常规算法
分治法 见名思义,即分而治之,从而得到我们想要的最终结果。分治法的思想是将一个规模为 N 的问题分解为 k 个较 小的子问题,这些子问题遵循的处理方式就是互相独立且与原问题相同。 两部分: 分(divide):递归解决较小的问题 ; 治(conquer):然后从子问题的解构建原问题的解; 三个步骤 1、分解(Divide):将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; 2、解...
2020-04-03 22:41:55
966
原创 图_算法
图: ,我们导航从一个点到另外一个点可以有条路径,路径不同,路况就不同,拥堵程度不同,所以导 致不同路径所花的时间也不一样,这种不同我们可以使用边的权重来表示,即根据每条边的实际情况给每一条 边分配一个正数或者负数值。如飞机线路图,各个城市就是顶点,航线就是边。那么权重就是机票价格。 图算法可以通过链表和二维数组实现; 结论:大多数时候,选择邻接列表是正确的。(在图比较稀疏的情况下,每一个顶点都只...
2020-04-03 00:49:44
207
原创 哈希表C/C++代码实现
哈希表 散列表,它是基于快速存取的角度设计的,也是一种典型的 “空间换时间” 的做法; 键(key) : 组员的编号, 如: 1,2,3…; 值(value): 组员的其他信息 (包含: 性别, 年龄, 战斗力等); 索引: 数组的下标 (0,1,2…), 用以快速定位和检索数据; 哈希桶: 保存索引的数组 (链表或数组), 数组成员为每一个索引值相同的多个元素 哈希函数: 将组员编号映射到索引...
2020-03-29 21:12:26
1190
原创 C++调试信息输出
#include <iostream> using namespace std; #define DEBUG 0 #ifdef DEBUG #define LOG(fmt,args) printf("File:<%s> Fun:[%s] Line:%d>>"fmt, __FILE__, __FUNCTION__, __LINE__, ##args) #els...
2020-03-24 22:54:36
543
原创 STL标准模板库
STL主要分成三类: algorithm(算法) : 对数据进行处理(解决问题)步骤的集合方式; container(容器) : 用来管理许多不用类型数据元素的集合体; iterator(迭代器) : 可遍历容器内的全部或者一部分的元素的对象; 使用STL的头文件有: 算法 : 在STL中已经实现了的,我们只需要去调用接口就可以达到需要完成的 目的, 不...
2020-03-05 23:11:38
175
原创 异常处理机制
#include <stdio.h> #include <stdlib.h> #include <string> using namespace std; #define BUFSIZE 1024 //实现文件的二进制拷贝 int copyfile2(const char* dest,const char* src) { FILE* fp1 = NULL...
2020-02-29 13:56:54
304
原创 C++类与对象__多态
虚函数表的实现 #include <iostream> using namespace std; class Father { public: //在类函数前加 "virtual"后,这个函数就变成了虚函数 virtual void fun1() { cout << "FUN1,打篮球" << endl; } virtual void fun2() { c...
2020-02-29 13:51:33
195
原创 C++泛型编程
泛型编程 函数模板: #include <iostream> using namespace std; //泛型编程的关键函数template<typename T>,T是指数据类型的原型,可以是任何类型的数据类型 //同时可以定义多个类型: template<typename T,typename T2... typename n> template&l...
2020-02-29 13:44:14
125
原创 C++类与对象_友元
在某些情况下需要实现某些功能,但是这个类的自身由于某些原因无法自己实现,需要借助"外力(外部函数)"才可以实现的时候就需要使用友元; #include <iostream> #include <sstream> using namespace std; class COMPUTER { public: COMPUTER() { this->cpu = "i7"...
2020-02-18 23:23:48
273
原创 C++类与对象__运算符重载
在某些特殊的运算情况下,以正常的运算方法不匹配时,就可以使用运算符重载; 头文件: #include <string> class COMPUTER{ public: COMPUTER(int val=0); std::string description(); private: int val; }; 实现cpp文件: #include "COMPUTER.h" #includ...
2020-02-18 23:22:56
177
原创 C++文件流
写文件 /* 创建一个文件,把姓名,年龄和薪资写进去; */ #include <iostream> #include <fstream>//文本操作的头文件 using namespace std; int main(void) { string name; int age; int salary; ofstream outfile;//以写的方式创建一个文...
2020-02-13 13:17:11
143
原创 位图算法
需求: 有很多不重复的整数,其中最大值不超过30000,最小值是0; 要求判断某个指定的整数是否在这些整数的集合中; #include <iostream> #include <Windows.h> using namespace std; void function(char*data,int len){ //根据需求实现: //这里为了测试后面的算法设定一些整数...
2020-01-31 11:34:57
367
原创 C++类的定义与访问权限
定义一个类 class 类的名称,如(MyClass){ 访问权限有:public(公开),protected(保护),private(私有),三 种方式; 定义函数有:构造函数MyClass();析构函数~MyClass(); 自定义构造函数MyClass(带数据类型的各种函数); 与各种访问接口; public:(公开权限) 外部对象可以直接访问这里面的所有数据成员和函数; 内部对象...
2020-01-10 14:02:38
645
原创 类的继承与派生
写一个最简单的例子,来实现"派生和继承" 父类 子类 创建一个父类: #include <iostream> #include <string> #include <sstream> using namespace std; class Father{ public: Father(string name,int age) { this->name...
2020-01-09 13:28:46
161
原创 C++练习题
第1题: m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回, 将低于平均分的分数放在below所指定的函数中。 #include <iostream> #include <Windows.h> using namespace std; int function(int score[],int m,int below[]){ int k=0,aver=0; f...
2020-01-06 13:02:41
871
1
原创 C/C++输出时保留小数
#include #include <Windows.h> #include //使用setprecision这个函数需要这个头文件 using namespace std; int main(){ float number1,number2,sum;//这里需要的是浮点数类型才可以输出小数 //C格式 scanf("%f\n%f",&number1,&number2...
2020-01-01 10:34:07
1381
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人