知识点
贾作真时真亦贾
吾日三省吾身
展开
-
UE4蓝图实现物体的移动与发生碰撞停止
1.设置物体移动的方向创建变量Direction,在细节面板类型选为Vector,并为其设置一个默认值。这里设置的是延y轴的正方向。2.设置物体移动速度的大小创建变量Speed,在细节面板变量类型为浮点型。设置默认值,为速度大小,这里设置的500(UE4中一个像素相当于现实世界的1厘米),相当于5m/s。3.设置物体下一帧的位置3.1.获取物体当前位置右键搜索并创建“GetWorldTransform(Static Mesh Component)”节点,再将节点Break T原创 2020-08-18 21:39:27 · 4860 阅读 · 0 评论 -
UE4打印Log及自定义Log类别
1.将Log打印在输出日志中UE_LOG(LogLoad, Log, TEXT("MyLog."));其中第一个参数表示Log的类别。用于在输出日志中做区分。第二个参数表示打印出的Log的颜色:Warning,输出的Log颜色为黄色;Log,输出的Log颜色为灰色;Error,输出的Log颜色为红色。第三个参数表示你要打印的信息。打印变量:UE_LOG(LogLoad, Log,TEXT(" %s %f %i") , *String , float, int);原创 2020-08-18 20:21:42 · 4319 阅读 · 0 评论 -
Lua中如何使用continue
最近学习lua的时候,想用一下continue,发现lua中不能直接使用,就查了一下如何在lua中实现continue的功能,大致分为两种方法:1.在循环中再定义一个循环,并且这个循环只执行一次原创 2020-06-17 15:25:14 · 25168 阅读 · 4 评论 -
UE4中C++调用Java函数并进行传参
最近在学习UE4时,用到了在插件中用C++调用Java函数,在这里记录一下。 首先我们要把要调用的Java函数放到插件中的.xml文件中的gameActivityClassAdditions位置,示例如下:<gameActivityClassAdditions> <if condition="Android_bEnablecode"> <true> <insert> p...原创 2020-05-27 21:16:17 · 2524 阅读 · 0 评论 -
C++中的回调函数
回调函数时通过函数指针进行调用的函数。你把一个函数的指针作为参数传递给另外一个函数,当这个指针被用来调用其指向的函数时,我们就说这是一个回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 为什么要使用回调函数呢? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。 回调可...原创 2020-05-27 20:33:05 · 391 阅读 · 0 评论 -
UE4中,android第三方类库的接入
虚幻4中安卓sdk的接入,可以使用 APL (Android Programming Language) 进行第三方库的接入,首先创建一个.XML 文件,该文件包括了库文件的拷贝、权限的写入、activity java文件的修改和添加等一系列android打包和接口修改的内容。不再需要手动去修改代码或者Java层的文件和代码调用接口。1.创建一个插件并在插件Source目录下创建一个.XML文件,在该插件模块.Build.cs文件中调用如下:public class PluginM...原创 2020-05-25 21:15:22 · 4337 阅读 · 0 评论 -
C++中virtual(虚函数)的用法
在面向对象的C++语言中,虚函数(virtualfunction)是一个非常重要的概念。什么是虚函数: 虚函数是指一个类中你希望重载的成员函数 ,当你用一个 基类指针或引用 指向一个继承类对象的时候,调用一个虚函数时, 实际调用的是继承类的版本。 ——摘自MSDN例:#include <iostream>#include <cstdio>u...转载 2019-08-01 15:00:38 · 561 阅读 · 0 评论 -
C++中delete函数
在C++中delete函数用于回收new分配的内存空间。C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。在针对简单的基本数据类型,使用delete也可...原创 2019-07-31 17:21:33 · 29272 阅读 · 2 评论 -
C++中resize函数的用法
resize(),设置大小;reserve(),设置容量;resize()是分配容器的内存大小,而reserve()只是设置容器容量大小,但并没有真正分配内存。resize()可以传递两个参数,分别是大小和初始值,初始值默认为0,reserve()只能传递一个参数,不能设置初始值,其初始值为系统随机生成。例:#include<iostream>#include&...原创 2019-07-31 11:20:27 · 31269 阅读 · 1 评论 -
C++中erase函数的用法
erase函数是一个删除容器中元素的函数,包括顺序容器和关联容器。基本用法如下:container.erase(p)-----从container中删除迭代器p指定的元素,p必须指向c中的一个真实元素,不能等于container.end()container.erase(b,d)------从container中删除迭代器对b和d所表示的范围中的元素,返回d所在下标。具...原创 2019-07-31 11:04:54 · 6422 阅读 · 3 评论 -
C++中的dynamic_cast和dynamic_pointer_cast
dynamic_cast:将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理。主要用途:将基类的指针或引用安全地转换成派生类的指针或引用,并用派生类的指针或引用调用非虚函数。如果是基类指针或引用调用的是虚函数无需转换就能在运行时调用派生类的虚函数。转换方式:dynamic_cast< type* >...原创 2019-08-02 16:23:16 · 17315 阅读 · 0 评论 -
python中数组下标为-1时
在Python数组中,-1表示数组的最后一行数据,一维数组时输出的是最后一个数,二维数组时输出的是最后一个一维数组,三维数组时输出的是最后一个二维数组,以此类推。当不知道数组具体长度时,可以这样使用例:m=[[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]]print(m[-1])...原创 2019-07-29 09:50:16 · 8219 阅读 · 0 评论 -
C++文件输入输出
好久没水过博客了,今天写代码时用到了C++的文件输入输出,就去查了一下。话不多说,直接上代码。#include <iostream>#include <fstream>using namespace std;int main(){ ofstream output("data.out"); //构造函数打开文件,写入数据 ifstream ...原创 2019-07-10 15:59:37 · 300 阅读 · 0 评论 -
C++虚函数后加 = 0
虚函数后面加 = 0,表示这个函数为纯虚函数,纯虚函数的一般形式:virtual 函数类型 函数名 (参数表列) =0;特点:1.纯虚函数没有函数体;2.一个类里如果包含=0的纯虚函数,那么这个类就是一个抽象类3.抽象类不能具体实例化(不能创建它的对象),而只能由它去派生子类4.在派生类中对此函数提供定义后,它才能具备函数的功能,可被调用。...原创 2019-08-01 15:36:14 · 9452 阅读 · 1 评论 -
使用0x3f3f3f3f表示无穷大
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。很多时候我们并不只是单纯拿无穷大来作比较,而是会运算后再做比较,例如在大转载 2017-07-24 16:26:19 · 400 阅读 · 0 评论 -
C++中unique函数
unique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了。由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列进行排序。基本用法:1.只有两个参数,且参数类型都是迭代器:iterator unique(iterator it_...原创 2019-09-11 16:56:44 · 959 阅读 · 0 评论 -
C++中命名空间相同自动合并
在单个.cpp文件中时:#include<iostream>#include<cstdio>#include<string>using namespace std;namespace cam{ int x=6;}namespace cam{ int y=5;}namespace cam{ int w=x*y;...原创 2019-08-14 10:16:50 · 759 阅读 · 0 评论 -
C++中的shared_ptr(智能指针)
头文件<memory>特点:(1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。(2) 使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占1个引用)(3) 在赋值操作中, 原来资源的引用计数会减一,新指向的资源引用计数会加一。std::shared_ptr<Test> p1(new Test...原创 2019-08-02 14:59:25 · 1023 阅读 · 0 评论 -
快速提取文件夹中的所有文件名
首先在文件夹中新建空白记事本,右键--新建--文本文档。打开这个文本文档,输入内容DIR *.* /B>LIST.TXT后保存。接着把文本文档的后辍改成bat格式,接着双击这个重命名后的bat文件,系统自动生成一个文本文档,文档名为"LIST.TXT",文档中保存着文件夹中的所有文件名...原创 2019-08-06 17:09:54 · 5404 阅读 · 1 评论 -
C++中static_assert关键字(静态断言)
static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言。语法:static_assert(常量表达式,提示字符串)。如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条编译错误,错误位置就是该static_assert语句所在行,错误提示就是第二个参数提示字符串。特点:(1)编译时...原创 2019-08-02 10:03:57 · 1477 阅读 · 0 评论 -
CMake 手册详解(总)
公司的一个项目使用CMake作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令、属性和变量的用法。同时在工作中也会阅读CMake的真实源码,后续会基于此陆续写一些工程中使用CMake的心得。CMake的版本也在不停更新,有些新的命令和变量会随着版本更新添加进来,这是后事了,暂且不管;现在锁定CMake 2.8.3作为手...转载 2019-08-08 11:09:44 · 2202 阅读 · 2 评论 -
C++虚函数后跟const
#include <iostream>using namespace std;class Base{public: virtual void print() const;};void Base::print() const{ cout << "Base::print()" << endl;}class Test : pu...原创 2019-08-01 16:29:56 · 3393 阅读 · 0 评论 -
MYSQL数据库自动断开连接
第一次往服务器上传项目,结果第二天就开始报错,访问不了数据库,以为谁不小心把数据库删了,看了看发现数据库数据都在,又重启了一下tomcat发现有能用了,就很迷,然后百度了一下发现,MySQL数据库8小时不访问就自动断开链接了。看大佬们的博客发现一共三种解决方案。一:修改MySQL配置参数这个参数的名称是wait_timeout,其默认值为28800秒(8小时)。其意义为关闭一个连接...原创 2019-06-04 09:07:38 · 6273 阅读 · 0 评论 -
倍增算法
白话讲解:转载原地址【序言】 我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最...转载 2019-04-22 19:21:14 · 422 阅读 · 0 评论 -
STL中的map容器的一点总结
STL中的map容器的一点总结 一、关于map的介绍map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树转载 2017-06-13 20:53:16 · 220 阅读 · 0 评论 -
STL中的vector容器的一点总结
1.vector的简单介绍vector作为STL提供的标准容器之一,是经常要使用的,有很重要的地位,并且使用起来也是灰常方便。vector又被称为向量,vector可以形象的描述为长度可以动态改变的数组,功能和数组较为相似。实际上更专业的描述为:vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单转载 2017-06-13 20:55:48 · 209 阅读 · 0 评论 -
很形象的dp算法
今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~(说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这种中国式的教育已经延绵了几千年了,现在中国的教材还是这个样子,讲清楚些明白些就那么难么?高中有个老师讲的一句话一直觉得很有道理:“教得会天才不是真本事,能把博士生的东西讲到小学生都会用那才是真水平。”)转载 2017-07-22 20:34:07 · 334 阅读 · 0 评论 -
动态规划:从新手到专家
动态规划:从新手到专家 March 26, 2013 作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。前言本文翻译自TopCoder上的一篇文章转载 2017-07-23 14:35:47 · 238 阅读 · 0 评论 -
线段树基本入门知识
在学习线段树之前,我们先来了解一下二叉树。线段树的构造思想线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。每一个叶子节点表示了一个单位区间。根节点表示的是“整体”的区间。对于每一个非叶结点所表示的区间[a,b]: 左儿子表示的区间为[a,(a+b)/2]右儿子表示的区间为[(a+b)/2+1,b]转载 2017-07-24 14:46:24 · 228 阅读 · 0 评论 -
Floyd算法
来自百度百科Floyd算法弗洛伊德算法一般指Floyd算法Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。中文名弗洛伊德算法外文名Floyd(Floyd-Warshall)时间复杂度O(n^3)空间复杂度O(n^2)作转载 2017-07-24 15:26:30 · 1529 阅读 · 0 评论 -
c++中字符串反转的3种方法
第一种:使用algorithm中的reverse函数?123456789101112131415#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){string s = "hello";reverse(s.begin(),s.end());cout<转载 2017-07-26 10:15:10 · 7148 阅读 · 0 评论 -
神一样的CSDN博客排名规则
目录(?)[+]一引言二 CSDN博客第一名三现有CSDN博客的排名机制四问题分析五该博主的日访问量与积分六为什么可以获得如此多的访问量七该博主的每年获取的积分八现有博客第二名是九结论神一样的CSDN博客排名规则一、引言 phphot博主2009年7月退隐江湖,一文不发,至今蝉联CSDN博客榜排名第一名。截止2013年12月底,已经至少6年。明年的2014马年CSDN博客,毫无争议,毫无悬念,ph转载 2017-07-28 09:49:26 · 421 阅读 · 0 评论 -
CSDN的博客积分计算规则及博客排名规则
最近对CSDN博客积分的计算规则比较疑惑,并看到CSDN的一篇博客《csdn博客积分如何计算》:博客排行榜排名分值=个人Blog所有随笔与文章的阅读数之和+个人Blog所有评论数之和*10+个人所发表的评论数之和*50下面是是我整理的一些规则:CSDN博客积分计算规则:1、每发布一篇原创或者翻译文章:可获得10分。2、每发布一篇转载文章:可获得2分。3、博主的文章每被评论一次:可获得1分。4、每转载 2017-07-28 09:53:20 · 330 阅读 · 0 评论 -
C++中的1LL
今天看代码时发现一句 ans += yes[i] * 1LL * (yes[i] - 1) / 2; 其中用了1LL。LL其实代表long long, * 1LL是为了在计算时,把int类型的变量转化为long long,然后再赋值给long long类型的变量。代码中有这一行,long long ans = 0; ans是long long类型的,ans += yes[i] * 1LL * (y转载 2017-08-04 10:10:51 · 595 阅读 · 0 评论 -
欧拉函数
算法总结 一欧拉函数(Euler’s totient function) 欧拉函数的定义: 在数论中,对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n)。 φ函数的值: φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1),p(2)…p(n)为x转载 2017-08-08 14:08:17 · 726 阅读 · 0 评论 -
STL中的set容器的一点总结
STL中的set容器的一点总结 1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数转载 2017-06-13 19:52:42 · 258 阅读 · 0 评论 -
如何快速转载CSDN中的博客
前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现 因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑转载 2017-06-13 19:49:05 · 197 阅读 · 0 评论 -
C语言文件输入输出
#include<stdio.h>int main(){ FILE *fin,*font; int b; fin=fopen("data.in","rb"); //定义一个输入文件 font=fopen("data.out","wb"); //定义一个输出文件 while(fscanf(fin, "%d", &b)==1)原创 2018-12-21 18:56:37 · 991 阅读 · 0 评论 -
莫队算法
原博客链接:https://www.cnblogs.com/Paul-Guderian/p/6933799.html·排序巧妙优化复杂度,带来NOIP前的最后一丝宁静。几个活蹦乱跳的指针的跳跃次数,决定着莫队算法的优劣……·目前的题型概括为三种:普通莫队,树形莫队以及带修莫队。若谈及入门,那么BZOJ2038的美妙袜子一题堪称顶尖。【例题一】袜子·述大意: 进行区间...转载 2018-08-03 10:39:26 · 188 阅读 · 0 评论 -
树状数组各大经典博客初学整合
大佬博客链接第一篇是搜索树状数组第一篇被许多人称赞的博客,通过这篇博客可以很好的理解lowbit。一、树状数组是干什么的? 平常我们会遇到一些对数组进行维护查询的操作,比较常见的如,修改某点的值、求某个区间的和,而这两种恰恰是树状数组的强项!当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O(N),如果实时的对数组进...转载 2018-04-24 16:14:37 · 327 阅读 · 0 评论