自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注游戏研发

涉及领域:Unity C# Cpp Linux 游戏客户端与服务端技术

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

原创 一位游戏服务器开发工程师的文章目录大全~

记录自己:handling,双非二本,修炼内功,步入大厂,敢做敢承担,收获总结。

2022-06-08 14:58:45 1628

原创 VSCode 配置C/C++,CMake构建,Python以及远程开发环境

VSCode 配置C/C++,CMake构建,Python以及远程开发环境VSCode 下载CMake 下载 与 C/C++ 插件集合下载CMake 配置C/C++工具包Python 插件下载及配置Remote SSH 远程开发插件VSCode 下载下载地址: https://code.visualstudio.comCMake 下载 与 C/C++ 插件集合下载CMake 是为了更方便地构建C/C++ 项目而存在的,一般C/C++ 程序要进行 预处理-编译-汇编-链接 的过程,CMake 通过编写

2021-03-29 13:04:51 1026 1

原创 EffectiveC++ 55个改善编程与设计的有效方法(含代码分析,一定收藏)

EffectiveC++ 项目链接项目链接

2020-12-23 17:37:44 2205

原创 走进 C/C++后台开发的第五步: Linux网络编程

深度理解网络编程

2020-10-06 11:50:14 552 1

原创 走进 C/C++后台开发的第四步: Linux 多线程编程精讲

多线程编程Linux 多线程概述1.1 概述1.2 线程分类1.3 线程创建的Linux 实现线程的创建和退出线程的等待退出3.1 等待线程退出3.2 线程的取消3.3 线程终止清理函数线程的同步与互斥4.1 线程的互斥4.2 线程的同步4.3 生产者消费者问题线程安全和线程属性5.1 线程安全5.2 线程的属性Linux 多线程概述1.1 概述1.2 线程分类1.3 线程创建的Linux 实现线程的创建和退出线程的等待退出3.1 等待线程退出3.2 线程的取消3.3 线程终止清理函数

2020-08-26 14:45:43 317

原创 走进 C/C++后台开发的第三步:Linux进程控制详解

Linux 进程控制 2.1 Linux 进程概述2.1.1 进程的标识符2.1.2 进程的用户 ID 和 组ID (进程的运行身份)2.1.3 进程的状态2.1.4 Linux 下的进程结构2.1.5 进程相关命令2.1.6 进程的调度策略2.1.7 会话,进程组,前台进程和后台进程2.2 进程的创建2.2.1 fork 函数2.2.2 exec 函数族2.2.3 system 函数2.2.4 进程的控制和终止2.3 进程间通信 (Internet Process Connection)查看和删除Sys

2020-08-24 16:52:51 483

原创 STL map / set 底层机制: 红黑树完全剖析

前言:在 STL 的容器中两大阵营 (vector deque list forward_list) 顺序容器 与 关联容器 (map set unorder_map unorder_set) 。关联容器指的是以关键字匹配指定数据的一种关联数据结构的集合, 在关联容器中通过关键字去查找对应的数据是非常块的, 下面我们会彻底地去剖析其底层实现机制 : 红黑树。 由基础树 到 二叉搜索树介绍红黑树之前,容许我介绍树的概念。1. 树(tree), 在计算机科学中,是十分基础的数据结构:.

2020-08-21 21:55:31 2543

原创 走进 C/C++后台开发的第二步:Linux文件系统编程

Linux系统编程一. 文件操作编程1.1 基于文件指针的文件操作1.1.1 Linux的文件1.1.2 文件的创建,打开与关闭1.1.3 读写文件1.1.4 修改文件的权限1.2 目录操作1.2.1:获取改变当前工作目录1.2.2 创建删除目录1.2.3 目录的存储原理1.2.4 目录相关操作1.3 基于文件描述符的文件操作 (重点)1.3.1 文件描述符简介1.3.2 打开、创建和关闭文件1.3.3 读写文件1.3.4 改变文件大小1.3.5 文件映射1.3.6 文件定位1.3.7 获取文件信息1

2020-08-14 18:45:58 238 2

原创 走进 C/C++后台开发第一步:Linux 命令和工具篇

入门 C/C++后台开发:Linux 篇一. 虚拟机/阿里云1. 配置虚拟机网络 / 阿里云使用2. 宿主机的环境3. xshell 安全远程工具二. Linux 简介1. Linux 内核2.POSIX 标准三. Shell 命令1. 用户操作命令2. Linux VFS虚拟文件系统3. Linux 文件操作命令四. vim 文本编辑器 (以后的编码工具)vim 插件 vimplus五. 编译器工具 GCC六. 调试工具 GDB七. 开发动态库和静态库一. 虚拟机/阿里云1. 配置虚拟机网络 / 阿

2020-08-13 19:17:15 652

原创 Linux 程序员必须掌握 Makefile工程项目管理器

Linux 的程序员必须掌握 Makefile工程项目管理器概述规则、目标文件和依赖文件示例伪目标变量预定义变量自动变量使用了变量的 Makefile 示例通配符和模式匹配内置函数循环指定makefile名字的make操作两种十分通用的 Makefile 演示概述规则、目标文件和依赖文件示例伪目标变量预定义变量自动变量使用了变量的 Makefile 示例通配符和模式匹配内置函数循环指定makefile名字的make操作两种十分通用的

2020-08-12 21:52:58 332 1

原创 每一位C/C++程序员的调试工具 : GDB (GUN Debugger)

每一位C/C++程序员的调试工具 : GDBgdb 介绍gdb 常用命令gdb调试命令列表gdb 调试段错误gdb 介绍gdb 常用命令gdb调试命令列表gdb 调试段错误

2020-08-12 21:28:36 1346

原创 每一位C/C++程序员的编译器工具 : GCC / G++

编译器工具 GCC / G++gcc/g++简介gcc 编译过程示例预处理编译汇编链接编译选项宏开关搜索路径指定wall 显示代码所有警告信息编译过程的文件和生成方法例子静态库和动态库创建动态库和静态库比较动态库和静态库利用软链接实现动态库的更新gcc优化选项gcc/g++简介gcc 编译过程示例预处理编译汇编链接编译选项宏开关搜索路径指定gcc ./src/main.c -I ./head/wall 显示代码所有警告信息编译过程的文件和生成方法

2020-08-12 21:17:43 655

原创 vim 文本编辑器: 每一位 C++程序员的编码工具

vim 文本编辑器 C++程序员的编码工具vim 简介vim 的模式vim 内常用的的命令操作删除和修改光标移动查找和替换可视模式文档保存和退出其他操作十六进制模式查看 vim 帮助锁操作和解锁操作外部光标定位多窗口多标签代码对齐总结vim 外部类似操作批量替换文件内容 sed(类似vim查找替换)对比文件区别 vimdiff修改 vim 配置文件查看 vim 帮助新手指导 vimtutorvim 代码插件 vimplusvim 简介vim 的模式额外比较重要的:o (nomal模式)在当

2020-08-12 20:30:33 271

原创 HashTable : HashMap 和 HashSet 说俺是隐形守护者

HashTable

2020-08-06 20:39:08 216

原创 STL容器组件的一位幕后英雄 Heap

做 Heap 的忠爱粉二进制堆建堆堆排序Heap 在 STL 中的职责STL Heap 算法测试实例:二进制堆二叉堆是一种形态特征是完全二叉树,且数值特征是父节点优于/劣于其左右子节点的一种数据结构。父节点优于其左右子节点的堆是大根堆父节点劣于其左右子节点的堆是小根堆由于形状近似完全二叉树,我们可以使用顺序结构(arr )来表示其。这里我们使用顺序结构表示时需要记住两个性质:完全二叉树的父节点为对应数组下标为 N,那么它的左孩子下标为 2 * N + 1,右孩子下标是 2 * N + .

2020-08-02 18:25:43 174 2

原创 送给C++开发朋友们:vector 的 源码分析与使用规范

vector一级目录二级目录三级目录一级目录二级目录三级目录

2020-07-31 10:45:04 416

原创 Leetcode : 两数,三数,四数之和问题剖析

两数,三数,四数之和问题剖析博主有话要吐槽话不多说,开始剖析问题讲论解法总结博主有话要吐槽话不多说,开始剖析问题你一定遇到以下问题,对其头脑发热:题目的目的: 给定一个序列(未排序),多数相加等于特定值,找出其所有符合条件的所有 多数 序列。讲论解法我们讲解以下 双数 的解法: 左右指针法(双指针)2. 左指针 L + 右指针 R 索引的序列元素值等于给定值,则记录其序列,并++L, – R 操作,缩短区间准备下一次查找 相加的值等于 目标值的 L,R 指向元素3. 左指

2020-07-21 08:27:10 161

Boost 准标准库中的网络库 asio(带官方案例剖析)

Boost 准标准库中的网络库 asio这篇文章带给读者什么东西?Boost.asio介绍同步编程与异步编程 (线程)同步编程模型异步编程模型同步与异步在实现多线程方面的不同I/O多路复用技术Clion配置Boost “准”标准库这篇文章带给读者什么东西?这篇文章对Boost.asio进行介绍,且涵盖网络编程知识,以及asio 网络库的使用与注意事项。Boost.asio介绍Boost.Asio是用于网络和底层I / O编程的跨平台C ++库,它使用现代C ++方法为开发人员提供一致的异步模型。基

2020-07-19 20:44:54 1396 1

原创 一小时通关计算机操作系统,冲冲冲!!!(含面试题解析)

一小时通过计算机操作系统第一篇幅:操作系统引论1.1 操作系统的目标与作用1.1.1 操作系统的目标1.1.2 操作系统的作用1.3 推动操作系统发展的主要动力1.2 操作系统的发展过程1.3 操作系统的基本特征 (重要)1.3.1 并发性1.3.2 共享性1.3.3 虚拟技术1.3.4 异步性1.4 操作系统的主要功能 (重要)1.4.1 处理机的管理1.4.2 存储器管理功能1.4.3 设备管理功能1.4.4 文件管理功能1.4.5 操作系统与用户之间的接口1.5 OS 结构设计1.5.1 传统的操作系

2020-07-15 18:48:27 780

原创 进程与线程面试题(亲身经历)

进程与线程是什么?以及它们的区别答:我们先说一下进程:在早期未引入进程的OS中,例如多机处理系统中,并发执行程序的话(由于并发程序的速度不同与资源竞争导致其执行程序的间断),其会造成数据的不可再现,这样的程序失去其意义。后来呢为了使得程序能并发执行且有效地对并发程序进行控制与描述,引入了进程的概念。引入进程的OS:程序在运行前,系统为之分配一个PCB(进程控制块:系统通过PCB对进程控制与描述),与程序段和程序相关的数据一起构成了进程实体。而进程的实质就是指进程实体的一次运行过程。且它是资源

2020-07-15 18:13:50 1097

原创 一小时通关计算机网络( 冲冲冲!!!)

通关计算机网络第一关:因特网什么是因特网从具体构成描述因特网从为应用程序提供服务的基础设施描述因特网网络的接入 (可跳过)家庭接入 (DSL,电缆)网络核心(重要)分组交换电路交换网络中的网络分组交换网中的 时延,丢包与 吞吐量接下来我们来理解一下时延吞吐量协议层次与其服务模型协议分层OSI模型第二关:应用层今天的网络发展无疑是人类历史上非常成功的设计系统,有数以亿级相连的计算机与移动设备,大家请跟随作者来快速闯关并见识那些处于网络的文明之光与领域知识。第一关:因特网因特网作为讨论计算机网络与其 协议

2020-06-27 13:22:18 2279

原创 展现 Linux C++服务器端编程的精华

Linux C++服务器端编程实战 服务器知识前提IPTCP伯克利 socket API安装 Linux Ubuntu (虚拟机)下载虚拟机:下载 ubuntu 系统:安装 ubuntu 系统XShell课后问题1. **如何判定一个类中是否有成员?**2. **sizeof 对于 类的尺寸估测**3. 当传递动态内存参数时,拒绝在参数传递就地开辟内存服务器知识前提IP网络层协议(internet protocal):无连接,不可靠TCP传输层协议(基于ip 的可靠稳定连接 transfer c

2020-06-23 17:54:22 563

原创 一小时复习完C++Primer!!!

C++Primer全篇总结C++Primer 的了解C++11的新特性C++Primer 的了解C++Primer是基于 C++11标准进行编写的书籍,以 3 位作者 Standley B. Lippman,Josee Lajoie ,Barbara E.Moo在C++语言发展历程中的经历,这本书的权威性自不容置疑的:既有编译器的开发和实践,又参与 C++标准的制定,再加上丰富的 C++ 教学经历。该书是一本由浅入深的教程,同时考虑到该书的全面性,我们也可以当其为教材,以备随时查阅。C++11的新特性

2020-05-30 18:09:46 1409

原创 规则代码 , Google C++ Style 剖析篇(附图)

Google C++ Style了解Google C++ Style图示Google C++ Style代码测试其规则了解Google C++ StyleC ++是许多Google开源项目使用的主要开发语言之一。每个C ++程序员都知道,该语言具有许多强大的功能,但是这种功能带来了复杂性,这反过来会使代码更易于出错,并且更难以阅读和维护。本指南的目的是通过详细描述编写C ++代码的注意事项来管理这种复杂性。这些规则的存在是为了使代码库易于管理,同时仍然允许编码人员有效地使用C ++语言功能。样式(也

2020-05-29 14:36:11 1914 1

原创 能力与素养恬阔与平时,欣赏与 Offer 展露在未来!

能力与素养恬阔与平时,欣赏与 Offer 展露在未来!1. 牢固的基础知识2. 高质量的代码3. 解决问题的思路4. 优化时间与空间效率5. 工作中面试中的各项能力。1. 牢固的基础知识面试官通常采用 概念题、代码分析题、以及编程题这 3 种常见题型来考察应聘者对某一编程语言的掌握程度。数据结构是面试考察重点。 其中 链表是面试题中使用频率最高的一种数据结构。 面试官加大难度的话就可能选用与 树(二叉树)相关问题,其中 栈 与 递归调用密切相关,队列在遍历时也会用到。算法是面试官喜欢考察的另一个重点

2020-05-18 22:48:34 471

原创 如何刻意的成为一个二叉树的孩子:二叉树的子结构问题

匹配二叉树的子结构问题概述 与 思路剖析问题概述思路剖析编写高质量的代码 与 手撕代码展示编写高质量代码的注意点:手撕代码问题概述 与 思路剖析问题概述匹配二叉树的子结构,(子结构为空树也视为不匹配)如下图所示:简单的说,我们将 二叉树与 子结构树 形象化后,子结构树 可以很清楚的看成 二叉树的一部分,且完全匹配(值相等,链接也相同)思路剖析由于是二叉树匹配 子结构,我们需要第...

2020-05-05 10:24:37 226

原创 合并两个排序链表问题 不会的有这篇文章就够了!!!

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2020-04-30 23:35:19 226

原创 逆转链序 !!! 反转链表思路解析

逆转链序 反转链表题目分析 与 解题思路反转链表代码反转链表题目分析 与 解题思路题目: 将链表的序列反转,并返回反转后的链表头部。解题思路分析:我们可以看一下图:我们首先将 1 节点与 2 节点的链断掉,使 1 节点与 3 节点连接,之后使 2 节点作为链表的头节点与 1 节点相连,这样就能达到逐步遍历 反转,直到 1 节点后不再有节点相连(1节点作为链表尾巴)即可。我们需要...

2020-04-29 23:59:30 515

原创 快慢指针法巧解链表中环的入口节点

快慢指针法巧解链表中环的入口节点问题描述分析 与 快慢指针巧解思路1. 求链表中环的入口节点2. 快慢指针解题思路快慢指针解题代码问题描述分析 与 快慢指针巧解思路1. 求链表中环的入口节点如果一个链表中包含环,如何找出环的入口呢?例如,在图示的链表中,环的入口节点是节点 3。2. 快慢指针解题思路解决这个问题的第一步应该是如何确定一个链表是否有环:确认链表中是否有环,我们仅仅需要...

2020-04-29 14:43:38 262

原创 快慢指针法巧解题目:链表中倒数第 k 个节点

快慢指针巧解链表中倒数第 k 个节点问题链表题目与快慢指针法介绍快慢指针解题代码实现样例测试:链表题目与快慢指针法介绍链表中倒数第k个节点:题目: 输入一个链表,输出该链表中倒数第 k 个节点。 为了符合大多数人的习惯,本题目从 1 开始计数,即链表的尾节点是倒数第 1 个节点。解决这个问题,我们都会想到以下几种方案:方案1 :为了得到倒数第 k 个节点,我们先走到链表的尾巴部位,之后再...

2020-04-28 21:39:09 302

原创 巧解数组分区问题:双指针交换法

双指针交换法数组分区与双指针交换法介绍编写进行分区操作的双指针交换法,考虑可扩展性数组分区与双指针交换法介绍数组分区的概念:其实就是指将数组的元素分为两部分,比如:分为偶数与奇数,分为非数字字符与数字字符,分为质数与非质数,分为大于 指定值的数,和小于指定值的数。双指针交换法介绍:由于需要分区,我们呢往往需要最快的分区速度,而仅需一次遍历就能完成分区操作,无需移动数组排列的双指针交换法...

2020-04-28 15:16:13 408

原创 最快删除指定链表节点 :Time = O(1)

最快删除指定链表节点删除链表节点的问题删除链表节点的问题题目:在 O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在 O(1)时间内删除该节点,链表节点和函数的定义如下:struct...

2020-04-27 23:47:26 293

原创 写给大忙人看的回溯法

如果你在匆匆忙忙地学习回溯,此不负您愿一级目录二级目录三级目录一级目录二级目录三级目录

2020-04-10 09:19:28 172

原创 “快速排序” 就应该这样快速理解

快速排序三级目录快速上手代码三级目录快速上手代码测试用例:功能测试:{9,3,4,5,6,2,1}边界值测试:{1},{2,1}重复值测试:{1,1,2,3,1,3,1,9,9,7,6,6}性能测试:{输入上千上万测试用例,进行压力测试}using sz=vector<int>::size_type ;int myParition(vector<int&gt...

2020-03-30 20:43:05 191

原创 面试官期待的实用斐波那契解法

面试官期待的实用斐波那契解法单说斐波那契数列挑剔的面试官不会喜欢的解法,效率很低面试官期待的解法1:记忆化数组优化重复计算面试官期待的解法2:直接利用循环过程累加计算单说斐波那契数列我们熟悉的斐波那契数列的问题即:写一个函数,输入 n , 求斐波那契数列的第 n 项 。斐波那契数列的定义如下 0 n=0f(n) = ...

2020-03-21 10:53:34 206

原创 栈与队列:如何闲情雅致地理解栈实现队列?

利用栈实现队列直截了当讲思路躁人之词多,话多伤气 ,我就不废话了,上代码直截了当讲思路思路:我们了解的队列操作思路(主要讲出队入队操作)例子:push(1) , push(2) , pop(), pop(), push(3)queue: 1queue: 1 , 2queue: 2queue: emptyqueue: 3如何利用栈来模拟队列的操作...

2020-03-20 20:44:32 136

原创 栈与队列:以队列之性质,完栈之功能!

利用队列实现栈话不多说,直接上思路直截了当,上代码话不多说,直接上思路所需条件:两个队列思路:队列间相互调动元素法我们举例讲解:操作: push(1) , push(2) , pop(), push(3) , pop(), push(1) ,按照栈的机制应该是(置顶而下):12,11,3,11,1,1我们使用队列模拟这种机制:入栈:入...

2020-03-20 18:37:22 168

原创 "宅公司 宅家里" 养生锻炼必备的少林八段锦

八段锦 八段锦介绍八式八段锦,动图指导:第一式:两手托天理三焦第二式:左右开弓似射雕第三式:调理脾胃须单举第四式:五劳七伤往后瞧第五式:摇头摆尾去心火第六式:两手攀足固肾腰第七式:攒拳怒目增气力第八式:背后七颠百病消我的建议八段锦介绍经络不畅,则百病丛生。如何打通经络,气血十足呢?中医以气血为核心,特别以气为根本,八段锦则应运而生。这套传承千年的养生操,就连很多高寿中医大师都在练,他们在各种场...

2020-03-03 17:14:38 913 1

原创 动态规划:记录结果再利用的 “动态规划”

2.3.1 记忆化搜索与动态规划01背包问题题目:有n 个重量和价值分别为 wi,vi的物品,从这些物品中挑选总重量不超过 W 的物品,求所有挑选方案中价值总和的最大值。const vector<pair<int,int>> thingVec{{2,3},{1,2},{3,4},{2,2}};const int N=4;const int W=5;//从第i...

2020-03-03 16:38:25 202

原创 Unity整体性能优化篇 第(四)节:代码优化 (CPU)

基于CPU的代码优化 ????一: CPU的优化方案(减少Object)1.批处理 (Batch)2.使用更少的材质 (贴图组合)3.少使用某些技术 shadow,lightMap,Reflection4.不合并材质(合并mesh时注意合并材质) (性能不会优化)二:资源池-Object Pool技术Object Pool介绍:Object Pool实现 (射击游戏)一: CPU的优化方案(减...

2019-09-25 20:25:02 371

空空如也

空空如也

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

TA关注的人

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