- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 亚控笔试题复盘
桌面上有n张纸牌,每张纸牌的正反两面各写着一个整数,初始时正面朝上。现在要求你翻动最少的纸牌,使得朝上的数字中最少有一半的数字是相同的,或判断无解。
2022-08-22 18:36:27
609
1
原创 C++智能指针
c++智能指针提出的本意是内存泄漏的背景,不想手动去管理内存,交给一个类去管理,当类离开自身的作用域时会自动调用析构函数,释放已经申请的内存。
2022-06-06 14:39:01
355
1
转载 sigaction函数中关于sa_mask的解释
sigset_t sa_mask 是一个信号集,在调用该信号捕捉函数之前,将需要block的信号加入这个sa_mask,仅当信号捕捉函数正在执行时,才阻塞sa_mask中的信号,当从信号捕捉函数返回时进程的信号屏蔽字复位为原先值。
2022-05-21 11:57:55
1023
原创 CentOS7 下 C++ 连接 Mysql 数据库的环境配置以及常用API测试
CentOS7 下 C++ 连接 Mysql 数据库的环境配置以及常用API测试
2022-05-13 10:19:52
1391
2
原创 网络编程 -- 实现多进程并发回声服务器
回声服务器:客户端给服务端发啥,服务端就给客户端返回啥多进程:每当服务器受到新的请求时,服务器当前进程(父进程)利用 fork() 函数复制一个子进程出来,处理客户端的请求,父进程继续监听新的请求。销毁僵尸进程:利用 sigaction 函数进行信号处理,当子进程终止时将产生 SIGCHLD 信号,触发调用 read_childproc 函数,在read_childproc 函数内, 使用 waitpid 函数销毁子进程, 避免其编程僵尸进程。
2022-05-07 14:48:29
396
原创 网络编程 -- 基于TCP的客户端/服务端计算器
服务端从客户端获得多个数字和运算符信息,服务端受到数字后对其进行加减乘运算,然后把结果传回客户端。
2022-05-05 21:52:42
723
1
原创 Redis -- RDB 持久化
Redis 是内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将存储在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据也会消失不见。为了解决这个问题, Redis 提供了 RDB 持久化功能, 可以将 Redis 在内存中的数据库状态保存到磁盘里面, 避免数据意外丢失。
2022-05-04 20:31:57
688
转载 数据库 -跳跃表与B+树
B+树是多叉平衡搜索树,只需要3层左右就能存放2kw左右的数据,同样情况下跳表则需要24层左右,假设层高对应磁盘IO,那么B+树的读性能会比跳表要好,因此mysql选了B+树做索引。redis的读写全在内存里进行操作,不涉及磁盘IO,同时跳表实现简单,相比B+树、AVL树、少了旋转树结构的开销,因此redis使用跳表来实现ZSET,而不是树结构。
2022-05-03 21:47:01
3489
2
原创 Redis List链表类型详解
作为一种常用的数据结构,链表内置在很多高级的编程语言里面, 因为 Redis 使用的 C 语言没有内置这种数据结构, 所有 Redis 构建了自己的链表实现。Redis链表节点和链表的实现typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value} listNode;多个 li...
2022-05-03 16:43:43
1530
原创 Redis String类型详解
Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。
2022-05-02 22:59:22
793
原创 Linux CentOS7 下安装Redis
Linux CentOS7 下安装Redis这里选择当前最新版本6.262、下载完成后使用Xftp工具将安装包传到centos7 /opt 路径下;3、使用 tar -zxvf redis-6.2.6.tar.gz 命令解压,解压完成之后,出现如下目录4、由于Redis是由c语言编写的,所以要安装基本的环境:yum install gcc-c++查看gcc版本:5、使用 make 命令静静等待至上图结束。redis默认安装路径:/.....
2022-04-27 15:48:53
162
原创 MySQL索引失效的11种情况
数据准备按照如下代码创建生成范围内随机整数函数、固定长度随机字符串、创建 student 表和 class 表、创建随机过程自动向表中插入数据,数据由随机函数随机生成。最后调用随机过程得到数据供学习使用。CREATE DATABASE dbtest01;set global log_bin_trust_function_creators=TRUE;DELIMITER //CREATE FUNCTION `rand_num`(from_num INT, to_num INT)RET
2022-04-19 14:27:20
1845
原创 Linux shell 实现 Acey Deucey小游戏
系统系统生成一副不包含大小王(共52张)的扑克牌,随机进行洗牌,翻开最上面的两张牌(如需随机抽只需小改动)。然后赌翻开下一张牌的点数是否在这两张牌之间,不管花色,只看点数,点数相同也算输,点数在前两张牌之间算赢。
2022-04-14 15:02:43
1378
3
原创 Linux shell脚本实现归档文件
需求实现一个每天对指定目录归档备份的脚本,输入一个目录名称(末尾不带/),将目录下所有文件按天归档,并将归档日期附加在归档文件名上,放在/root/archive下。代码实现#!/bin/bash# 首先判断输入参数个数是否为1if [ $# -ne 1 ]then echo "参数个数错误!应该输入一个参数,作为归档目录名" exitfi# 从输入参数中获取目录名称if [ -d $1 ]then echoelse
2022-04-13 16:01:52
1042
原创 MySQL适合创建索引的11种情况及不适合创建索引的7种情况
数据准备:创建学生表和课程表#创建学生表CREATE TABLE `student_info`(`id` INT(11) NOT NULL AUTO_INCREMENT,`student_id` INT NOT NULL,`name` VARCHAR(20) DEFAULT NULL,`course_id` INT NOT NULL,`class_id` INT(11) DEFAULT NULL,`create_time` DATETIME DEFAULT CURRENT_TIMEST
2022-04-07 22:18:29
8808
原创 MySQL 如何添加索引
表中添加索引的三种方式 创建表的时候创建索引 隐式创建:使用CREATE TABLE创建表时,在声明有主键约束、唯一性约束、外键约束的字段上,会自动的添加相关的索引。#CREATE TABLE时隐式创建索引CREATE TABLE dept(dept_id INT PRIMARY KEY AUTO_INCREMENT,dept_name VARCHAR(20));CREATE TABLE emp(emp_id INT PRIMARY KEY AUTO_INCREMENT,e
2022-04-07 11:02:25
12844
原创 7种SQL JOINS 的实现
# 7种 Sql JOIN的实现# 1、中图 : 内连接SELECT employee_id, department_nameFROM employees e JOIN departments dON e.department_id = d.department_id;# 2、左上图:左外连接SELECT employee_id, department_nameFROM employees e LEFT JOIN departments dON e.department_id...
2022-03-08 10:24:17
657
原创 C++实现排序算法
插入排序基本思想每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。即边插入边排序,保证子序列中随时都是排好序的。基本操作在有序序列中插入一个元素,保持序列有序,有序长度不断增加。 起初,a[0]是长度为1的子序列。然后逐一将a[1]至a[n-1]插入到有序子序列中。 在插入a[i]前,数组a的前半段(a[0]-a[i-1])是有序段,后半段(a[i]-a[n-1])是停留与输入次序的 “无序段”。 插入a[i]使a[0]-a[i-
2021-11-01 22:12:41
839
原创 哈夫曼树的构造算法
哈夫曼算法根据 个给定的权值构成棵二叉树的森林,其中只有一个带权为的根节点。(构造森林全是根) 在中选取两颗根节点的权值最小的树作为左右子树,构造一颗新的二叉树,且设置新的二叉树的根节点的权值为其左右子树上根节点的权值之和。(选用两小造新树) 在中删除这两棵树,同时将新得到的二叉树加入森林中。(删除两小添新人) 重复步骤 2 和步骤 3,知道森林中只有一棵树为止,这棵树即为哈夫曼树。(重复2、3剩单根)C++实现#include <iostream>...
2021-10-14 13:07:43
3216
3
原创 C++实现二叉树的创建及遍历
二叉树的结点类class Node{public: Node() = default; Node(int data) : _data(data), _lchild(nullptr), _rchild(nullptr) {};
2021-10-08 20:58:54
6135
1
原创 数据结构 - - 两个非空链表做加法(力扣题两数相加)
题目描述:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0开头。解题思路一开始的想法一开始我想的是以短的链表为基准,第一个while循环停止条件为其中一个链表加完了,然后再去考虑另一个链表的剩余部分和进位做加法,如果没有进位就提前结束了,这样还要再判断是哪一个链表先空了,有些繁琐。遇到的问题最开...
2021-09-22 10:52:10
2229
3
原创 串的模式匹配算法
目录算法目的算法应用算法种类BF算法代码实现运行结果算法目的确定主串中所含子串(模式串)第一次出现的位置(定位)算法应用搜索引擎,拼写检查,语言翻译,数据压缩等。算法种类BF算法(Brute-Force,又称古典的、经典的、朴素的、穷举的) KMP算法(特点:速度快)BF算法算法的思路是从S的每一个字符开始依次与T的字符进行匹配,采用穷举法的思路。如图,为主串的指向,为子串的指向,当匹配失败是,和需要进行回溯,规则如下:即...
2021-09-16 00:01:21
1388
2
原创 C++实现一个简单的顺序队列
队列相关概念定义只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插!!)实现方式有顺序队和链队两种,以循环队列更常见,所以下面我们实现一个循环队列,需要注意的是,这里的循环仅仅是在逻辑的循环,在实际物理结构上并非循环,这样做是为了解决假溢出的问题。循环队列类的实现#include <iostream>#define MaxQSize 10using namespace std;template <class T>class queue{p
2021-09-14 12:40:15
835
原创 C++实现一个简单的链栈
链栈类的实现这个由于比较简单,就直接贴代码了,记录一下自己写过这个~// 结点类template <class T>class Node{public: Node() = default; Node(T data, Node<T>* next) { this->_data = data; this->_next = next; }public: T _data; Node<
2021-09-13 20:13:29
225
原创 C++实现一个简单的单链表
C++实现一个简单的单链表带头结点的单链表一些功能介绍结点类单链表类初始化析构函数的实现判断是否为空表销毁单链表清空单链表求单链表的表长获取某个结点的前驱节点获取某个结点的值按值查找在指定的位置插入新结点删除指定位置上的结点打印链表完整代码测试结果带头结点的单链表单链表是线性表的一种,表中的数据元素(也就是常说的结点)在物理存储器中的位置是任意的,也就是说逻辑上相邻的两个数据元素在物理位置上是不一定相邻的,他们之间靠一个指针绑定在一起。带头结点的单链表可以表示如下:其中L为头指针, 指向头结点,由于
2021-09-11 20:43:43
2455
1
原创 抽象数据类型的表示与实现 -- C++实现一个虚数类及其运算规则
C++实现一个虚数类及其运算规则直接贴代码吧输出结果直接贴代码吧#include <iostream>using namespace std;// 抽象数据类型的表示与实现// 定义虚数及其运算class Complex{friend ostream& operator<<(ostream &cout, const Complex &c);public: // 构造函数 Complex() { t
2021-09-07 19:15:47
1710
原创 使用C++实现一个职工管理系统
一、问题描述职工管理系统可以用来管理公司内所有员工的信息本文主要利用 C++ 来实现一个基于多态的职工管理系统,公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位以及职责。普通员工职责:完成经理派发的任务经理职责:完成老板派发的任务,并下发任务给员工老板职责:管理公司所有事物管理系统中需要实现的功能如下:退出管理系统:退出当前管理系统。增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号。显示职工信息:显
2021-08-31 12:26:31
1156
Distributed Optimization and Statistical Learning
2020-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人