自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sKy_233的博客

学习记录

  • 博客(51)
  • 收藏
  • 关注

原创 全匹配 > 前缀匹配 > 后缀匹配

全匹配 > 前缀匹配 > 后缀匹配。sort() 为True时不交换。不支持 同时存在前后缀匹配。主要是为了使用sort排序。

2023-02-21 00:17:43 322

原创 Git Tortoise安装 CodeHub

Git Tortoise安装

2022-06-27 23:51:40 771

原创 Tortoise 没有显示绿色图标

clone下来的文件没有带绿色图标,按照一下操作即可,git、svn都可。

2022-06-27 23:00:06 1284

原创 select poll epoll服务器(Linux)

select函数原型int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);int nfds : 监听的文件描述符中最大的文件描述符+1fd_set *readfds, 读fd_set *writefds, 写fd_set *exceptfds, 异常struct timeval *timeout :超时时间 NULL 阻塞监听

2022-04-06 18:25:31 2109

原创 Ubuntu 共享文件夹

虚拟机: VM Player 15Ubuntu:18.04版本在经过以下操作后,Ubuntu 中 /mnt/hgfs/一直为空,未能查看到共享文件夹解决过程:1.点击重新安装VMware Tools遇到的问题:重新安装为灰色无法点击解决方案一: 查找资料时发现,有此方法 修改CD/DVD [优快云博客](https://blog.youkuaiyun.com/Ztrans/article/details/88429319)解决方案二: 可能时个别的特殊情况,在系统启动但还未完全启动时,此按钮

2022-04-04 18:33:56 1802

原创 三次握手 四次挥手

三次握手:四次挥手:

2022-04-03 16:46:32 303

原创 C/C++ socket 通信实现

服务器:创建套接字(socket) -> 绑定IP(bind) -> 设置监听上限(listen)-> 开始接受(accept) -> 接收消息(recv) ->发送消息(send)#include <iostream>#include <string.h>#include <WinSock2.h>#include <errno.h>#include <WS2tcpip.h>#include <w

2022-04-01 18:02:22 1162

原创 MySQL 基础知识记录

数据库语句分类:​ DDL : 对数据库数据表的操作 CREATE : 创建数据库/表格 DROP: 删除索引、表和数据库 ALTER : 在已有的表中添加、修改或删除列​ DML:对表中内容的操作 SELECT... FROM...: 查找 INSERT... INTO...: 插入 DELETE... FROM...: 删除 UPDATE... set... : 更新 ​ DCL:数据控制语句COMMIT : 将sql执行结果写入数据库SAVEPOINT: 保存时间点

2022-03-30 20:30:42 690

原创 Navicat连接Mysql8.0出现1251错误

Navicat连接Mysql8.0出现1251错误:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #修改加密规则ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #更新一下用户的密码...

2022-03-28 20:46:09 1570

原创 C++ 设计模式

1.简单工厂模式 使用一个工厂去创建所需要的类 水果工厂:工厂类、抽象水果类、具体水果类 简单工厂模式增加新的水果需要修改工厂类内部内容 违反了开闭原则,对于扩展是开放的,但是对于修改是封闭的 引出工厂模式2.工厂模式 工厂模式在简单工厂上添加新的抽象工厂 抽象工厂->具体工厂 抽象水果->具体水果类 新增水果时需要增加新的具体工厂,每种水果一个工厂3.单例模式1.将构造函数私有化2.增加静态的私有的当前对象指针3.提供静态对外接口4.类外初始化懒汉式: 在

2022-03-26 18:44:27 1310

原创 strcat strcpy strcmp 函数实现

自实现strcat strcpy strcmp函数记录strcat :将两个字符串连接strcpy:复制字符串strcmp:比较字符串#include <iostream>#include <stdio.h>#include <string.h>using namespace std;char * m_strcat(char * dest, const char * source){ //使用指针记录开始位置 char * tmp = dest;

2022-03-17 00:36:33 300

原创 C++ 类型转换

static_cast 无条件转换,静态类型转换dynamic_cast 有条件转换,动态类型转换,运行时检查类型安全const_cast 去掉类型的const属性reinterpret_cast 强制类型转换#include <iostream>using namespace std;void test01(){ //static_cast<> //用于内置数据类型 //以及具有继承关系的指针或者引用 cout &

2022-03-15 17:21:56 1019

原创 C++ STL记录

粗略总结记录STL的知识1. STL基本构成 容器 ---- 迭代器 ----算法 容器:存储数据的容器 迭代器:提供给算法用于查找容器数据的标识 ==》类似”指针“? 算法:操作数据的工具2. vector单口容器(类似于栈) 可变动态数组 数据添加删除:v.push_back(X); v.pop_back();迭代器:v.begin() v.end() v.rbegin() v.rend();容量(v.cepacity()):添加元素 空间不足时 扩大一倍大小(v

2022-02-24 16:23:50 644

原创 UE4 街机游戏记录

自学《Unreal Engine 4 游戏开发入门经典》 学习记录1.游戏场景搭建:使用立方体静态网格搭建平台以及围栏,使用阻挡体积限制玩家的移动范围2.玩家pawn:1.自定义射击游戏的玩家外观2.项目设置中绑定玩家操作的输入,取消pawn 的默认运动3.GameMode中事件开始运行时设置固定摄像机位置4.pawn中添加自定义变量,is Damaged 判读是否收到伤害。第二次伤害游戏结束5.添加粒子系统(受伤着火),添加受伤函数(收到伤害时产生火焰的粒子效果,is Dama

2022-02-12 14:19:25 2298

原创 虚幻4 重新开始游戏 Set Timer by Function Name(以函数名设置定时器)

游戏结束后延迟2s重新开始游戏,按照书中知识编写蓝图如下:但经过自己多次测试发现游戏一直没有重启。蓝图顺序也无问题。现问题已解决:...

2022-02-06 15:52:41 3701

原创 Dev C++ 报错:[Warning] lambda expressions only available with -std=c++11 or -std=gnu++11

#include <iostream>using namespace std;int main(){ int z1 = 1,z2 = 2; auto z = [](int x ,int y) ->int {return (x+y);} ; cout <<z(z1,z2) << endl; }

2021-10-18 17:08:41 1279

原创 C++ cout 进制

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。不同进制的输出,如下:#include <iostream>using namespace std;int main(){ int a = 012; //八进制 int b = 0x12; //十六进制 int c = 12; //十进制 /* 8进制输出 */ cout << oct; cout <&lt

2021-10-16 16:42:37 229

原创 虚幻4 附加 组合 图层

1.附加:子类的变换会随着父类的变换而变换,但子类变换不会影响父类。在世界大纲将子类拖到父类上即可单独设置跟随父类或者世界,相对及相对父类2.组合:选择多个物体组合在一起(ctrl + G),可以同时将一组物体进行移动、旋转、缩放,但变换应用位置为组合的中心点,解除组合(shift + G)3.图层创建新的图层,将选中的物体加入图层,点击左侧的眼睛即可实现隐藏该图层的所有物体...

2021-10-08 22:03:38 1009

原创 虚幻4 光照需要重建

在项目中添加新的物体时出现 光照需要重建的提示 解决办法1:构建光照解决方法2:在世界大纲中搜索light,将所有光照设置成实时的

2021-10-08 21:49:36 2842

原创 C语言 函数方法 待更新...

使用指针获取都到 aaa.xxx 中的 xxxchar * getName(const char * name,char *buff){ char *p = name; char * q = buffer; while(*p) { if ('.' == *p) { break; } *q++ = *p++; //注意考虑 i++ 和 ++i的区别 } if (*p) p++; *q = '\0'; return p;}...

2021-09-09 16:31:07 101

原创 虚幻4 简易自动门

新建蓝图类 Actor:便于保存,可应用在多个场景。不需要重复制作。1.加入素材,门框,门2.加入盒体碰撞3.设置事件表人物进出碰撞盒体,按照时间轴执行,(时间轴设置 0-1)使用插值 设置具体的移动范围 ,执行z轴旋转 ,执行对象,门...

2021-08-04 21:51:16 594

转载 ARP协议详解

版权声明:本文为优快云博主「MT筱柒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/qq_42248536/article/details/88806908———————————————————————————————————————— ARP是一个非常重要而且经常使用的地址解析协议,它虽然是一个网络层协议,却也涉及数据

2021-05-17 09:33:44 906 1

原创 网络编程基础知识

OSI七层模型应用层 :提供各种应用程序的接口表示层:数据加密、格式转换会话层:建立、管理、维护、会话传输层:建立端对端的连接网络层:IP寻址和路由选择数据链路层:流量控制、链路管理物理层:规范电压和接口TCP/IP四层模型应用层:应用层协议(规定发送和回复数据的格式和方法) http,FTP,TFTP,QQ协议...传输层(TCP/UDP) 主要作用是解决数据如何传输的问题 TCP(Transport Control Protocol):传输层控制协议 是一种面向

2020-12-07 20:18:54 257

原创 线程池

线程池 pthread pool线程池技术思路: 一般采用预创建线程技术,也就是提前把需要用线程先创建一定数目。 这些线程提前创建好了之后,“任务队列”里面假设没有任务,那么就 让这些线程休眠,一旦有任务,就唤醒线程去执行任务,任务执行完了, 也不需要去销毁线程,直到当你想退出或者是关机时,这个时候,那么你 调用销毁线程池地函数去销毁线程。“任务队列”是一个共享资源“互斥访问”线程池的实现先初始化线程池的基本内容,将线程全部创建好,所有线程都执行的是任务调配的函数在任务调配函数中,因没

2020-12-02 19:56:08 233

原创 线程

线程:Thread基本概念: (1) 线程是比进程更小的活动单位。它是进程中的一个执行路径(执行分子), 线程也是并发的一种情形。 (2) 进程的内部可以有多个线程,它们并发执行,但是进程内部所有的线程 共享整个进程的地址空间。 (3) main函数, 进程的一个主线程。 进程的指令部分分成多个 线程去并发执行。 线程特点: (1) 创建一个线程比创建一个进程的开销要小得多 因为创建一个线程,不需要拷贝进程得地址空间。 (2) 实现线程间的通信十分方便. 因为一个进

2020-12-01 15:51:29 186

原创 进程通信 ※信号量※

信号量机制信号量(semaphore)是一种用于提供不同进程间或一个进程内部不同的线程间同步的机制.进程/线程,任务: 并发的实体同步 : 并发的实体间,相互等待相互制约,有序的,有条件的访问。 信号量的目的: 为了保护共享资源,让共享资源有序访问保护实现信号量的实质,其实是程序员之间的一种约定,用来保护共享资源的,访问设备: 如进程A 和 B,都要访问一个互斥设备,那么可以用一个信号量来表示 能不能访问该设备,然后每个进程访问该设备时,先去访问信号量, 如果能访问设备则先把信号量设置

2020-11-28 15:03:35 453 1

原创 进程通信 共享内存

1.共享内存进程间通信的一种方式,多个进程共享一段内存,“共享内存”。实现方式: 在内核中开辟一块空间,其它的进程通过 “映射”的方式 获取这段共享内存的引用(指针)进程 P1 可以映射这段内存,同时其它进程 p2也可以映射 这段内存, P1往这段内存中写数据,实际上就是往p2的进程 地址空间写数据,反之亦然。 类似于文件操作。2.System V 共享内存 API函数1.ftok 创建一个key #include <sys/types.h> #includ

2020-11-27 18:56:45 163

原创 进程通信 signal

信号信号是进程间通信的一种方式,这种方式没有数据传输的只是在内核中传递了一个信号(整数),信号的表示是一个整数。不同的信号值,代表不同的含义。用户可以自定义信号。自定义的信号的含义由程序员来定和解释。Linux 系统查看 man 7 signal进程处理信号通过“软件中断/软中断”来实现的。 进程上下文: 在进程的环境下,“时间片轮转” 一个进程的执行状态分为: 用户态:在执行用户自己的代码 内核态:进入操作系统内环境 中断上下文:中断的环境下。进程在收到一个信号

2020-11-26 16:39:26 237

原创 进程通信 管道

进程之间进行通信实质:信息(数据)的交换进程的地址空间是独立的,所以无法使用全局变量进行实现通信。如果要实现进程间的通信,那么就必须把数据或信息放到一个两个或多个进程都能够访问到的地方。进程的通信方式管道 :pipe (无名管道) fifo (有名管道)信号:signal消息队列 System V消息队列/POSIX消息队列信号量 System V 信号量/POSIX信号量共享内存 System V 共享内存/POSIX共享内存管道1.pipe (无名管道)

2020-11-26 14:26:26 362

原创 并发 进程

程序执行方式:1.顺序执行 :一个程序执行完,才能执行下一个程序。cpu利用率低2.并发执行 : 一个程序执行有很多步骤,取值 -> 执行 ->写回 不同的步骤需要不同的硬件完成,使用并发就可以实现多个程序同时执行,这里就引入了‘进程’这个概念,提高cpu的利用率进程和程序的区别 :(1) 程序是静态概念(是指令与数据的有序集合,“程序文件”) 进程是动态的概念,进程是有声明周期的(动态产生,动态消亡)(2) 进程是一个程序的一个执行活动。 一个程序可以对应多个进程。

2020-11-25 22:30:51 720

原创 标准IO

标准IO:在每个操作系统下,对于文件的处理方式、代码是不同的。linux : open/read/win : Winopen…使用系统IO写代码,移植性很差。使用标准IO 能在不同的操作系统中实现需要的功能。在标准IO库,用一个结构体(FILE)来描述或表示一个普通文件,然后再这个结构体中创建了两个缓冲区(两端内存),一个读缓冲区,一个写缓冲区。FILE{ char * in; //指向读的缓冲区的 char * out;//指向写的缓冲区的 ... ...}对“文件”操作的接口

2020-11-24 14:57:04 472 1

原创 Linux 系统IO

Linux电脑或者设备的基本结构: APP(应用程序)<=> OS(操作系统)<=> hardware(硬件)Linux 是一个 免费的操作系统 再Linux下一切都是文件,在Linux中操作任何东西都可以看成操作文件。包括(屏幕、键盘、u盘…)通过操作文件的接口实现。文件:文件的属性:inode ,唯一标识着一个文件是否存在文件操作过程:OS(内核中): struct inode{}: 用来描述一个文件的物理信息, 系统识别到一个文件的存在就会开辟一个struct

2020-11-20 18:57:23 288

原创 数据结构 图

图一个图就是一些顶点的集合,这些顶点之间使用边连接。Grath = (V,R)V = {Vi | Vi属于数据类型 i = 0 ,1,2,3…}是顶点元素的集合 Vi图中的顶点R = {<Vi,Vj> | Vi Vj 是属于V,且p(Vi,Vj)存在 } 是图中顶点之间的关系集合图的分类:有向图 有方向=》 弧无向图 没有方向 =》边网 =》 再图的基础上,添加一个w (权值) 也就是两个点直接的距离带权的图称之为网顶点的度:顶点的边或者弧的条数连通图 :从一个点到另一个

2020-11-18 18:20:38 256

原创 HashMap

HashMap底层为数组 和 链表 jdk1.8后引入了红黑树键,值 <key,value>根据key 经过算法得到存储的位置,放入数据结构之中。如果位置中已经存在一个值,则使用链表的形式将他往后放。自我估计hash的值typedef struct hashNode{int key; //键值int data; //存储的数据struct hashNode * next; //当计算出来的位置是同一个时,使用链表连接起来.}HashNode;java 中get

2020-11-18 16:33:15 119

原创 数据结构 树

树和二叉树树:存在一个根节点(root),往下生成分支节点的度 :节点拥有的子节点数称之为该节点的度节点层次,root 最顶端的为第一层。节点最大的层次称之为树的高度或深度(depth)二叉树: 一种树形结构,特点,每一个节点只存在最多两个子节点。度最大为2.二叉树的几种形态:1、只有一个根节点(没有左右孩子)2、只有一个左孩子3、只有一个右孩子4、左右都有孩子二叉树的性质1)在二叉树的第 i 层上最多有 2^(i-1) 个节点2)深度为k的二叉树最多有 2^k-1 个节点3

2020-11-18 15:00:50 199

原创 数据结构 栈和队列

栈 stack一种思想,先进后出,后进先出。可以将其看出弹夹,上子弹的顺序和打出的顺序。栈顶 Top ; 栈底 Bottom栈分为顺序栈(seqStack || 数组)、链式栈(linkStack || 链表)顺序栈typedef int SELemtype; //栈元素的类型#define STACK_MAX 1024 //数组需要设置最大数量typedef struct seqStack //栈{ SElemtype elem[STACK_MAX]; //栈元素 int top; /

2020-11-17 16:17:26 455

原创 数据结构 链表

链表 linkedlist由一个个节点连接起来,连接方式为:在上一个节点中添加一个指针用于指向下一个节点基础节点:#define Elemtype int; // 设置节点的类型typedef struct node{ Elemtype data; //节点的值 struct node * next; //用于指向下一个节点}Node;...

2020-11-17 15:49:50 245

转载 实现简单的String类

#include #include using namespace std;class String{public:String(const char* str = NULL);//通用构造函数,String(“abc”)String(const String &str);//拷贝构造~String();String& operator=(const String &str);//赋值运算符。返回引用String operator+(const String &a

2020-11-09 22:41:49 228

原创 C语言 C语言组成

C语言有多个 .c 文件和 .h文件组成.c :C语言源代码文件.h :C语言头文件.C文件组成:1)头文件 #include <stdio.h> #include "student.h" < >包括起来的是系统的头文件 " "包含起来的是自己定义的文件2)宏定义(define) a.不带参数的宏 #define 宏名 替换的内容 #define PI 3.1415 b.带参数的宏 #define 宏名(参数) 替换的内容

2020-09-05 21:36:37 451

原创 C语言 结构体

1.结构体类似于java中的对象(student.java) 1)结构体的定义(关键字 struct) struct student(结构体名) { int No; //成员类型 成员名 char name[256]; } 创建一个结构体 struct student std;(如果结构体中存在使用指针的,需要申请空间malloc才能赋值) 2)结构体成员的内存布局 结构体所占的空间为各成员变量的所占空间之和(注意字节对齐,下面总结) 各成员变量

2020-09-05 14:07:48 342

空空如也

空空如也

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

TA关注的人

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