自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Liangheng_梁衡的博客

梁衡的学习记录和心得

  • 博客(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 76

原创 Linux下_多线程

条件的检测是在互斥锁的保护下进行的。如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,重新获得互斥锁,重新评价条件。家庭内的各成员同时做各自的事情(父亲工作、母亲持家、小孩上学)而对于家庭外部的人来说,这个家庭同时在做多件事情,家庭内的每个成员,就是一个线程。多个进程间不会直接共享内存线程是进程的基本执行单元,一个进程的所有任务都在线程中执行,进程要想执行任务,必须得有线程,进程至少要有一条线程,程序启动会默认开启一条线程,这条线程被称为主线程或 UI 线程。

2023-04-11 22:35:45 427

原创 解决VS2019下UTF-8的编码问题

vs2019编码问题

2022-07-26 12:31:47 350 1

原创 Linux_网络编程

网络编程,有select, poll, epoll等框架的应用

2022-07-24 14:34:05 198

原创 linux_libevent框架

libevent网络库的简单应用

2022-07-24 12:10:30 522

原创 Linxu下多进程

linux下多进程的应用

2022-07-11 22:53:16 44

原创 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 737

原创 Linux项目准备工作

Makefile 编写程序的编译和链接使用C、C++编写可执行程序,首先要把源文件编译成中间代码文件,Linux下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。一个项目,拥有成百上千的源程序文件,编译链接这些源文件都是由规则的,Makefile闪亮登场!Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编译”。make是一个解释makefile中指令的命令工

2021-10-19 23:55:15 300

原创 项目--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 557

原创 Linux服务器开发--1(网络和文件操作)

1.

2021-06-24 10:17:04 68

原创 QT5学习记录

1.QT基本知识程序文件下的图解(xxx.pro文件)QT的所有模块

2021-05-14 22:52:52 86

原创 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 360

原创 MySQL数据库学习记录

1.下载安装可以自行在百度搜索,这里不做讲解!!!2.在CMD命令行查看MySQL是否启动使用 net start3.关闭MySQL使用 net stop MySQL, 如果有错误提示,就使用管理员的权限运行CMD命令行;4.启动MySQL 使用 net start MySQL ;...

2020-10-13 02:34:41 187

原创 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 106

原创 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 766

原创 练手小项目

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 275

原创 查找算法

查找定义查找 又称检索或查询,是指在查找表中找出满足一定条件的结点或记录对应的操作。查找表 在计算机中,是指被查找的数据对象是由同一类型的记录构成的集合,如顺序表, 链表、二叉树和哈希表等 ;查找效率 查找算法中的基本运算是通过记录的关键字与给定值进行比较,所以查找的效率 同常取决于比较所花的时间,而时间取决于比较的次数。通常以关键字与给定值进行比较的记录 个数的平均值来计算。查找操作及分...

2020-04-08 18:08:14 168

原创 七大排序算法

选择排序根据自身的需求,选择的一种排序方法,如:从小到大排序,或从大到小排序#include <iostream>#define Type int//位置交换函数void swap(Type* ptr1, Type* ptr2) { Type tmp = *ptr1; *ptr1 = *ptr2; *ptr2 = tmp;}//实现排序(从后面开始大到小排序...

2020-04-04 23:56:27 107

原创 顺序表

顺序表:

2020-04-03 22:57:47 164

原创

树树状图是一种数据结构,它是由 n(n>=1) 个有限节点组成一个具有层次关系的集合,把它叫 “树” 是因为它看起来像一颗倒挂的树,也就是说它是根朝上,叶超下的,它具有以下特点:1.每个节点有0个或多个子节点: 没有父节点的节点称为根节点, 每一个非根节点只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树:专业术语 中 文 ...

2020-04-03 22:57:10 115

原创

栈栈是一种线性表,只不过它是受限的线性表,只能在一端操作,进出的一端为栈顶,另一端为栈底,栈可以用顺序存储,也可以用链式存储,进去方式为先进后出,后进先出,注意: 栈只能在一端操作,所以不可以在中间查找,取值,插入,删除等操作,我们只需要掌握初始化,入栈,出栈 取栈顶元素等操作就可以了;一般可以应用在回溯法算法中,回溯法:对一个包括有很多个结点,每个结点有若干个搜索分支的问题,把原问...

2020-04-03 22:55:40 77

原创

堆算法特点:1.每个节点最多可以有两个节点;2.根节点的键值是所有堆节点键值中最大者,且每个根节点的值都比其子节点的值大;3.除了根节点没有兄弟节点,最后一个左节点可以没有兄弟节点,其他节点必须要有兄弟节点;计算公式:i的子节点左节点的位置: 2i+1; i的右子节点位置: 2i+2; i的父节点位置: (i-1)/2 (都是取整数的);#include <stdio.h&g...

2020-04-03 22:54:29 85

原创 队列

队列队列是一种受限的线性表,(Queue),它是一种运算受限的线性表,规则是先进先出;1.队列是一种受限的线性结构2.它只允许在表的前端(front)进行删除,在表的后端(rear)进行插入操作;数组实现队列:#include <iostream>#include <string>using namespace std;//创建一个数组队列typede...

2020-04-03 22:52:26 176

原创 链表

链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必相邻,逻辑上的相邻可以给每个元素附加一个指针域,指向下一个元素的存储位置;链表的核心元素:1,每个节点由数据域和指针域组成;2,指针域指向下一个节点的内存地址;3.在企业中应用于在linux内核中,有大量的数据结构需要用到双向链表,如:进程,文件,模块,页面等;若采用双向链表的传统实现方式,需要为这些数据结构维护各自的链...

2020-04-03 22:46:06 105

原创 五大常规算法

分治法见名思义,即分而治之,从而得到我们想要的最终结果。分治法的思想是将一个规模为 N 的问题分解为 k 个较 小的子问题,这些子问题遵循的处理方式就是互相独立且与原问题相同。两部分:分(divide):递归解决较小的问题 ;治(conquer):然后从子问题的解构建原问题的解;三个步骤1、分解(Divide):将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;2、解...

2020-04-03 22:41:55 858

原创 图_算法

图:,我们导航从一个点到另外一个点可以有条路径,路径不同,路况就不同,拥堵程度不同,所以导 致不同路径所花的时间也不一样,这种不同我们可以使用边的权重来表示,即根据每条边的实际情况给每一条 边分配一个正数或者负数值。如飞机线路图,各个城市就是顶点,航线就是边。那么权重就是机票价格。图算法可以通过链表和二维数组实现;结论:大多数时候,选择邻接列表是正确的。(在图比较稀疏的情况下,每一个顶点都只...

2020-04-03 00:49:44 167

原创 哈希表C/C++代码实现

哈希表散列表,它是基于快速存取的角度设计的,也是一种典型的 “空间换时间” 的做法;键(key) : 组员的编号, 如: 1,2,3…;值(value): 组员的其他信息 (包含: 性别, 年龄, 战斗力等);索引: 数组的下标 (0,1,2…), 用以快速定位和检索数据;哈希桶: 保存索引的数组 (链表或数组), 数组成员为每一个索引值相同的多个元素哈希函数: 将组员编号映射到索引...

2020-03-29 21:12:26 1090

原创 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 468

原创 STL标准模板库

STL主要分成三类:algorithm(算法) : 对数据进行处理(解决问题)步骤的集合方式;container(容器) : 用来管理许多不用类型数据元素的集合体;iterator(迭代器) : 可遍历容器内的全部或者一部分的元素的对象;使用STL的头文件有: 算法 : 在STL中已经实现了的,我们只需要去调用接口就可以达到需要完成的 目的, 不...

2020-03-05 23:11:38 144

原创 异常处理机制

#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 268

原创 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 155

原创 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 96

原创 C++类与对象_友元

在某些情况下需要实现某些功能,但是这个类的自身由于某些原因无法自己实现,需要借助"外力(外部函数)"才可以实现的时候就需要使用友元;#include <iostream>#include <sstream>using namespace std;class COMPUTER {public: COMPUTER() { this->cpu = "i7"...

2020-02-18 23:23:48 190

原创 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 122

原创 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 97

原创 位图算法

需求:有很多不重复的整数,其中最大值不超过30000,最小值是0;要求判断某个指定的整数是否在这些整数的集合中;#include <iostream>#include <Windows.h>using namespace std;void function(char*data,int len){ //根据需求实现: //这里为了测试后面的算法设定一些整数...

2020-01-31 11:34:57 316

原创 C++类的定义与访问权限

定义一个类class 类的名称,如(MyClass){访问权限有:public(公开),protected(保护),private(私有),三 种方式;定义函数有:构造函数MyClass();析构函数~MyClass();自定义构造函数MyClass(带数据类型的各种函数);与各种访问接口;public:(公开权限)外部对象可以直接访问这里面的所有数据成员和函数;内部对象...

2020-01-10 14:02:38 555

原创 类的继承与派生

写一个最简单的例子,来实现"派生和继承"父类 子类创建一个父类:#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 111

原创 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 763 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 1214 2

空空如也

空空如也

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

TA关注的人

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