自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (2)
  • 收藏
  • 关注

原创 设计模式-23种-分类整理

目录设计模式的六大原则设计模式的三大类《深入设计模式》读后总结总原则——开闭原则(Open Closed Principle)在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等。不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件

2021-12-04 19:24:15 287

原创 TrinityCore魔兽世界服务器-环境搭建(Debian11)

TrinityCore是模拟魔兽世界(World of Warcraft)的开源项目。我这里学习搭建环境,基于以下:下面是我自己用的客户端(12340),对应我自己的云服务器。下载就可以直接玩喽!(账号注册请私聊我)链接:https://pan.baidu.com/s/1jVQ4qoJ4qGNDHOBUzicIjg 提取码:imbo (某度云盘真是ma了f*ck 慢)关于版本选择3.3.5, 是由于我对这个版本的魔兽世界更加了解,作为一名资深兽人,觉得这个版本的魔兽是最好玩的。TrinityCore官方估

2021-04-09 18:24:19 27510 88

原创 C#学习笔记-Task.Delay和Thread.Sleep的区别

当我们在代码中的调用await Task.Delay(x),我们并不是在指示程序“此处暂停x毫秒”,而是在说:“我已经完成了我能做的所有工作,你可以去运行其他任务了,x毫秒后请唤醒我继续我的工作”。这样看起来,Task.Delay并不像是一个暂停指令,而更像是一个让时间调度器知道当前任务可以被暂时挂起,而去运行其他任务的信号。

2024-01-26 15:18:01 540

原创 C#学习笔记-反射

反射是.NET中的重要机制,通过反射可以得到*.exe或*.dll等程序集内部的接口、类、方法、字段、属性、特性等信息,还可以动态创建出类型实例并执行其中的方法。反射的功能很强大,任何复杂抽象的分层架构或者复杂的设计模式均是建立在这些基础之上的,比如我们要进行模块化、组件化开发,要严格的消除模块之间的耦合,要进行动态接口调用。开发这样强大而灵活的系统,必须要用反射才行,我们只要把它用在合适的位置,不仅能使代码变的清晰简洁,更能让它发挥出惊人的力量。

2024-01-26 15:17:28 202

原创 c#学习笔记-内存管理和gc优化

GC如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。

2024-01-26 15:16:34 526

原创 C#学习笔记-值类型和引用类型

首先,什么是值类型,什么是引用类型?在C#中值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。引用类型(reference type):string 和 class统称为引用类型。

2024-01-26 15:15:56 229

原创 c++学习笔记(14)-类的对象占用内存

很多C++书籍中都介绍过,一个class对象需要占用多大的内存空间。

2023-12-26 15:38:32 386

原创 c++学习笔记(12)-traits

C++ 中的 type traits 是一种技术,用于在编译期间判断、查询类型的属性。Type traits 可以帮助程序员在编译时进行类型判断,而不是在运行时判断,避免了程序中的不必要开销,并且可以提供更好的类型安全性。

2023-12-26 15:32:49 370

原创 c++学习笔记(11)-SFINAE

SFINAE 是 Substitution Failure Is Not An Error 的缩写,表示“替换失败不是一个错误”。指的是,当编译器遇到模板参数不符合要求的情况时,会跳过这个无法匹配的模板,继续寻找合适的模板。int。

2023-12-26 15:32:09 382

原创 c++学习笔记(10)-可变参数模板

可变参数模板是 C++ 中非常有用的语言特性,它支持在编译时处理任意数量和类型的参数,从而实现更加通用和灵活的编程方式,增加了模板的灵活性和扩展性,但是可读性差、编译时间长,需要开发者根据具体情况进行权衡和选择。

2023-12-26 15:31:17 401

原创 c++学习笔记(9)-模板基础

C++中的模板是一种通用的编程工具,可以生成可应对多种数据类型的代码。通过使用模板,可以编写可以处理不同类型数据的函数和类,并提高代码的可重用性和灵活性。

2023-12-26 15:30:41 381

原创 c++学习笔记(8)-内存对齐

C++11中的内存对齐特性可以帮助开发人员更好地控制内存对齐规则,从而提高程序的性能和节省内存空间。在实际开发中,需要根据具体应用场景选择适当的内存对齐方式。

2023-12-26 15:28:35 508 1

原创 c++学习笔记(7)-复制省略

Copy elision是一种强大的优化技术,可以减少构造和复制的操作,提高程序效率,但还是存在一些局限和开发风险的:Copy elision的实现方式可能因编译器版本和编译器选项而变化,比如上述代码的输出结果在C++20编译器中则有些许不同,因此开发人员需要了解特定编译器版本和选项,以便制定最优的代码优化策略。

2023-12-26 15:28:18 400

原创 c++学习笔记(6)-类型转换

数值、字符、bool、枚举类型之间的转换;指针类型之间、引用类型之间的转换;限定符的添加和删除:比如const,volatile。用户定义类型转换指类类型与基本类型、或者类类型之间的转换。转换构造函数:定义在类中的一种特殊的构造函数,它可以将其它类型转换为该类的一个对象。类类型转换操作符:定义在类中的一种特殊的成员函数,它可以将一个对象转换为另一个基本类型。//重载int运算符,把Object转化为int类型public://转换构造函数//类类型转换操作符:定义int运算符。

2023-12-26 15:26:23 914

原创 c++学习笔记(5)-多态

public:std::cout<<"矩形"<<std::endl;public:std::cout<<"圆形"<<std::endl;printpublic :std :: cout << "矩形" << std :: endl;} };public :std :: cout << "圆形" << std :: endl;} };//矩形 print < Circle >();//圆形 return 0;();

2023-12-26 15:25:36 357

原创 c++学习笔记(4)-链接

总的来说,静态链接和动态链接是两种不同的链接方式,都可用于将程序的不同模块连接到一起,以便程序能够正常运行,适用于不同的场景,互有优劣。

2023-12-26 15:24:54 408

原创 c++学习笔记(3)-类型擦除

C++ 类型擦除是指通过一些技术手段去掉(或“擦除”)C++ 中的类型信息,使得一个数据结构或算法能够处理不同类型的对象。类型擦除可以使得泛型编程变得更加灵活和通用,可以将相同的算法应用于不同类型的数据上,而无需对算法进行修改。在C++中,有两种主要的类型擦除方法,分别是基于模板类的类型擦除和基于虚函数的类型擦除。

2023-12-26 15:23:51 442

原创 c++学习笔记(2)-宏的用途

C++ 中可以使用 #define 语句来定义宏。// 定义常量#define PI3.1415926return 0;在上述代码中,通过 #define PI 3.1415926 定义了一个常量 PI,然后在程序中可以直接使用这个常量,而无需重复输入3.1415926。在程序执行时,编译器会将 PI 替换成实际值,从而计算出圆的面积,并输出到控制台。宏函数是将代码块封装成宏的形式,使用时会将宏展开成代码块。

2023-12-26 15:22:50 375

原创 c++学习笔记(1)-符号重定义

如果在多个地方重复定义同一个宏,则会在预处理阶段导致符号重定义错误。在这个例子中,当编译器编译 main.c 时,会发现 MAX 宏在两个头文件中都被定义了,从而导致符号重定义错误。符号重定义错误通常是在编译期间被检测到的,而不是在运行时。然而,有些情况下可能会在运行时发生符号重定义错误。例如,在动态链接库或共享对象中,函数或变量可以在运行时加载和卸载。

2023-12-26 15:22:09 390

原创 c++学习笔记(13)-左值和右值

如果能够直接使用临时对象已经申请的资源,并在其析构函数中取消对资源的释放,这样既能节省资源,有能节省资源申请和释放的时间。需要注意的是:右值引用并不能阻止编译器在临时对象使用完之后将其释放掉的事实,所以转移构造函数和转移赋值操作符重载函数 中都将_data赋值为了NULL,而且析构函数中保证了_data!常量左值引用可以绑定到非常量左值、常量左值、非常量右值、常量右值等所有的值类型。右值引用:其实也是绑定到右值的引用,通过&&来获得右值引用。左值引用:其实就是绑定到左值的引用,通过&来获得左值引用。

2023-12-26 15:21:00 395

原创 Ubuntu笔记-硬盘扩容

概述vgdisplaydf -hfdisk /dev/sdapvscanpvcreate /dev/sda4vgextend ubuntu-vg /dev/sda4sudo pvscanlvextend -l +100%FREE /dev/mapper/ubuntu–vg-ubuntu–lvresize2fs /dev/mapper/ubuntu–vg-ubuntu–lvdf -hsudo vgdisplay

2023-05-02 13:34:27 122 1

原创 Linux笔记-用户

其中包含了登录 Linux 系统所必需的每个用户的信息。它保存用户的有用信息,如用户名、密码、用户 ID、群组 ID、用户 ID 信息、用户的home目录和 Shell。boil❌1000:1000:boil:/home/boil:/bin/bash 为例,7 个字段( “:”分割)的详细信息如下。

2023-05-01 10:31:41 3487

翻译 Entt笔记-(ECS)实体组件系统

EnTT提供了一个用现代C++编写的header-only、微小的、易于使用的实体组件系统模块。实体-组件-系统(也称为ECS)是一种主要用于游戏开发的架构模式。

2023-04-22 18:03:48 1581

原创 Docker笔记-networks

一些场景下,默认的网络配置满足不了我们的需求,此时我们可使用networks命令自定义网络。networks命令允许我们创建更加复杂的网络拓扑并指定自定义网络驱动和选项。networks : default : # default是一个默认存在的网络, # Use a custom driver driver : custom - driver - 1这样,就指定了自定义的网络驱动。如下,我们在其中定义了两个自定义网络,名为inner和outer。

2023-02-11 12:08:07 1084

原创 Docker笔记-Redis

本系列介绍如何基于docker-compose部署一套自己的开发环境。教程讲解docker中redis配置。给大家上一套我自己的简单的学习环境配置~先!

2023-02-11 12:06:53 149

原创 Docker笔记-DB(mariadb)

本系列介绍如何基于docker-compose部署一套自己的开发环境。教程讲解docker中mariadb配置。给大家上一套我自己的简单的学习环境配置~先!

2023-02-11 12:06:21 547

原创 Everything常用语法

当然,通常你不需要手动输入搜索路径,你可以用右键菜单在指定文件夹中启动Everything。,表示筛选后缀为jpg、png或psd的文件(多个扩展名用分号连接)。dc:lastsat|dc:thissun 上周末创建的文件。dc:last3hours 3小时内创建的文件。dc:thisweek 本周创建的文件。dc:may或dc:thismay。

2022-12-23 21:03:44 267

原创 RenduCore笔记-项目结构模版(cmake&c++)

cmake项目框架通用cmake封装!

2022-10-04 17:51:15 427

原创 RenduCore笔记-c++实用库

c++实用库

2022-10-01 12:44:40 593

原创 CMake教程(常用命令)

**add_executable**(demo demo.cpp) # 生成可执行文件**add_library**(common STATIC util.cpp) # 生成静态库 **add_library**(common SHARED util.cpp) # 生成共享库(动态库)

2022-08-27 16:29:49 667

原创 CMake教程(常见变量)

## CMAKE_CURRENT_SOURCE_DIR当前处理的 CMakeLists.txt 所在的路径## CMAKE_CURRENT_BINARY_DIRtarget 编译目录## CMAKE_CURRENT_LIST_DIRCMakeLists.txt 的完整路径## CMAKE_CURRENT_LIST_LINE当前所在的行## CMAKE_MODULE_PATH 定义自己的 cmake 模块所在的路径,SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE

2022-08-27 16:29:09 5124

原创 Docker笔记-c++开发环境

本系列介绍如何基于docker-compose部署一套自己的开发环境。教程从下面常用环境讲解,希望举一反三。1、networks 配置2、services 配置废话不多说,直接上真相~!先!

2022-08-10 15:47:26 719

原创 Docker笔记-镜像仓库

目前Docker官方维护了一个公共仓库DockerHub,其中已经包括了数量超过15000个镜像。大部分需求都可以通过在DockerHub中直接下载镜像来使用。我们自己的镜像也可以托管到DockerHub中。由于可视化网页的可视化操作很简单,本教程只着重介绍命令行操作。...

2022-07-31 22:46:19 215

原创 Docker笔记-常用命令

dockersearch【镜像名称】

2022-07-31 22:44:34 3768

翻译 CMake教程Step7(安装打包)

在本例中,我们将构建支持二进制安装和包管理特性的安装包。版本信息在本教程的前面已经设置,License.txt已经包含在此步骤的顶级源目录中。接下来,假设我们希望将我们的项目分发给其他人,以便他们可以使用它。这与我们之前(cmake教程Step4中)所做的安装有一点不同,在那里我们只安装了从源代码构建的二进制文件。最后,我们包含了CPack模块,它将使用这些变量和当前系统的一些其他属性来设置安装程序。接下来,我们设置一些CPack变量,用于存储这个项目的许可证和版本信息。要指定生成器,请使用-G选项。...

2022-07-31 22:42:02 431

原创 TrinityCore魔兽世界服务器-注册网站

WoWSimpleRegistration是azerothcore官方提供的账号注册页面的项目。同TrinityCore类似,也是一个模拟魔兽世界的开源项目。WoWSimpleRegistration同样也支持TrinityCore的账号注册。下面是网站的部署介绍。

2022-07-21 23:55:33 6003 3

翻译 CMake教程Step6(添加自定义命令和生成文件)

参考官方cmake3.24教程翻译。我这里使用cmake 3.16来演示例子。https://cmake.org/cmake/help/v3.24/guide/tutorial/index.htmlhttps://gitlab.kitware.com/cmake/cmake/-/tree/master/Help/guide/tutorialstep6https://cmake.org/cmake/help/v3.24/guide/tutorial/Adding%20a%20Custom%20Comm

2022-07-04 23:24:51 731

翻译 CMake教程Step5(添加系统自检)

https://cmake.org/cmake/help/v3.24/guide/tutorial/index.htmlhttps://gitlab.kitware.com/cmake/cmake/-/tree/master/Help/guide/tutorialstep5https://cmake.org/cmake/help/v3.24/guide/tutorial/Adding%20System%20Introspection.html我的仓库 :https://github.com/FRB

2022-07-04 23:08:04 234

翻译 CMake教程Step4(安装和测试)

参考官方cmake3.24教程翻译https://cmake.org/cmake/help/v3.24/guide/tutorial/index.htmlhttps://gitlab.kitware.com/cmake/cmake/-/tree/master/Help/guide/tutorialstep4https://cmake.org/cmake/help/v3.24/guide/tutorial/Installing%20and%20Testing.html我的仓库 :https://g

2022-07-02 14:10:26 294

翻译 CMake教程Step3(添加库的使用要求)

参考官方cmake3.24教程翻译https://cmake.org/cmake/help/v3.24/guide/tutorial/index.htmlhttps://gitlab.kitware.com/cmake/cmake/-/tree/master/Help/guide/tutorialstep3https://cmake.org/cmake/help/v3.24/guide/tutorial/Adding%20Usage%20Requirements%20for%20a%20Librar

2022-07-02 12:34:43 194

RubyInstallers Window(Ruby安装包Windows)

window10环境下ruby安装包。内涵rubyinstaller-2.5.1-1-x64.exe,rubyinstaller-2.4.4-1-x64.exe

2018-04-04

Redis windows

Redis-x64-3.2.100.msi redis-desktop-manager-0.8.8.384.exe

2017-10-06

空空如也

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

TA关注的人

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