C++
文章平均质量分 82
UExplorer
ue小白
展开
-
C++14~17新特性
C++17之前if/switch语句中不能声明一个临时的变量//C++17// 将临时变量放到 if 语句内itr!*itr = 4;原创 2024-06-12 17:15:00 · 785 阅读 · 0 评论 -
UE4网络基础
UE4 NetWorkingActor’s Role 参与网络复制的actor在replicates过程中主要扮演两种重要的角色,Role和RemoteRole。RemoteRole代表了该actor的对应端(即Server对应Client,Client对应Server)。这两个属性可以告诉你:谁有这个actor的主控权(Authority)这个actor是否参与replicated复制模式同时Role的属性还可以分化为:ROLE_AuthorityROLE_SimulatedPr原创 2022-04-15 23:31:18 · 1525 阅读 · 1 评论 -
C++实现常用数据结构
这是自己学习数据结构中使用纯C++实现的一个版本,实现了一些常用的数据结构,现在只有纯代码,以及少许注释,在后面会添加每个数据结构的原理详解、时间复杂度和空间复杂度分析的md文件。这里附上github地址https://github.com/WLSTLA/DataStructureLearning 实现部分仅供参考,写得不好的地方忘大佬海涵,同时觉得作者写的不错的话,可以star鼓励一下~目前已经实现:...原创 2021-12-31 16:09:26 · 926 阅读 · 0 评论 -
C++侯捷STL标准库与泛型编程笔记
C++STL本篇博文参考与侯捷老师的STL泛型编程课程,将其中比较重要的部分记录来下,方便今后的复习。十分推荐侯捷老师的C++系列,真的是圣经一样的存在!1.STL六大部件Component容器(Containers)分配器(Allocators)算法(Alogorithms)迭代器(Iterators)适配器(Adapters)仿函数(Functors)2.分配器allocator以::operator new 和::operator delete完成al原创 2021-11-29 20:39:47 · 1254 阅读 · 0 评论 -
C++智能指针
智能指针1. 前言与智能指针的引出 为了方便程序员因为在申请了一块堆内存,之后忘记释放该内存导致的内存泄露的问题,引入智能指针的概念。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象,这其中的理念便是C++之父提出的RAII(Resources Acquisition Is Initialization),资源获取即初始化,对象在初始化时获取资源,销毁时释放资源。智能指针在C++11版本之后提供,包含在头文件<memory>中,shared_ptr、weak_ptr、u原创 2021-11-08 16:02:57 · 1111 阅读 · 0 评论 -
UE4委托
UE4 委托 委托是一种可在C++对象上调用成员函数,并可以动态绑定到任意对象的成员函数,之后在该对象上调用函数。可以降低类之间的耦合度,在UE4中共支持三种类型的委托。单播委托多播委托动态委托1. 声明委托单播声明方式描述DECLARE_DELEGATE(DelegateName)绑定void Function() 类型的函数DECLARE_DELEGATE_OneParam(DelegateName,Param1Type)绑定void Functio原创 2021-11-08 12:24:01 · 1506 阅读 · 0 评论 -
UE4C++基础(一)
UE4 C++ 基础1. 反射与垃圾回收 反射是指程序在运行时可以访问、检测和修改它本身状态或行为的一种能力(应用在UE4中的话,就是根据类命获取类中的信息),但原生C++并没有提供反射系统,在UE4中则有专门的反射系统负责采集数据。该系统同时也负责垃圾回收。垃圾回收GC(GarbageCollector)简单地说,只要被垃圾回收系统追踪到的变量,该变量就无需我们人为的进行Delete,由垃圾回收系统进行删除。 类参与垃圾回收系统,需要指针特定的宏。UCLASS([specifier,speci原创 2021-11-02 20:16:51 · 2109 阅读 · 0 评论 -
C++委托
C++ Delegate 使用Delegate(委托)可以起到类之间的解耦操作,具有对象闭包的特性。同时也是UE4C++中经常用到的特性之一,这里为了自己更好的理解写下该篇博文帮助之后复习。一.单播代理template<class retType,class ...paramTypes>class DelegateBase{public: virtual retType Execute(paramTypes ...params)=0;};//绑定成员函数template&l原创 2021-11-01 14:42:12 · 1447 阅读 · 0 评论 -
C++多线程编程
C++多线程1. 概念1.1 概念进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程原创 2021-09-27 22:44:47 · 736 阅读 · 2 评论 -
C++ 11 常用特性(三)
12. Lambda表达式 Lambda表达式是C++11最重要也是最常用的特性之一,这是现在现代编程语言的一个特点,Lambda表达式具有1.声明式的编程风格。2.简洁,避免了代码的膨胀和功能分散。3.在需要的时间和地点实现功能闭包等优点。//语法格式:[capture](params)opt -> ret{body;};//captrue 是捕获列表 捕获一定范围的变量//params 是参数列表 和函数参数列表一样,没有参数可以省略不写auto f1 = [](){return原创 2021-09-27 00:17:28 · 202 阅读 · 0 评论 -
C++ 11 常用特性(二)
7. using的使用 在C++中using用于声明命名空间,在C++11中赋予using新的功能。可以同typedef一样定义别名。定义别名//typedef 定义别名typedef 旧的类型名 新的类型名typedef unsigned int uint_t;//using 定义别名using 新的类型 = 旧的类型using uint_t = int; 通过上述语法格式可以看出两者没有太大区别,假设我们定义一个函数指针,using的优势就能凸显出来了://使用typed原创 2021-08-25 00:29:07 · 227 阅读 · 0 评论 -
C++ 11 常用特性(一)
C++ 11 常用特性(一)1. 原始字面量在C++11中添加了定义原始字符串的字面量,定义方式为:R"xxx(原始字符串)xxx"其中()两边的字符串可以省略。原始字面量R可以直接表示字符串的实际含义,而不需要额外对字符串做转译或链接等操作。void rawliteral(){ string s1 = "D:\hello\world\test.Text" ; cout<<s1<<endl; string str = R"(D:\hello\world\test.T原创 2021-08-23 22:00:53 · 229 阅读 · 0 评论