草庐IT

【虚幻引擎】UE4/UE5Map、Set、 Array的用法

飞起的猪 2024-04-10 原文

一、Array

Array:数组是一个内存空间连续,可以存储多个相同类型的有序的元序列集合。

每一个索引值对应一个Value值,比如0号索引值对应A,值可以是任意类型的变量

用法:

节点

描述

Add

取入一个数组和一个变量。它将该变量插入到数组的尾部,并相应地增加数组的大小

Clear

将清除相连接的数组中的所有数据,重置数组,并删除数组中的所有索引值

Contains Item

节点允许搜索一个数组来查找特定项目。如果找到了该项目,那么该节点则输出 True ,否则会输出 False

Find Item

 节点取入一个数组和一个变量,然后查找在数组中第一次找到那个变量的值时该值所处的索引编号

Get

 节点取入一个数组和一个整型值,该整型值用作为索引编号。然后,它返回在索引编号处找到的数组值。

Insert Item

节点取入一个数组、一个变量值和一个整型值(索引编号)。然后,它把该变量的值插入到数组中的该索引值指定的位置处。

Last Index

节点返回数组中最后一个值的索引编号。

Length

 返回数组的大小或数组中元素项的个数。如果数组中有 N 个对象,那么 Length 将返回 N , 而数组的有效索引值是从 0 到 N-1

Remove Index

 节点通过使用项目的索引编号来从数组中删除那个项目。所有其他的索引编号将会自动更新来弥补该空缺。

Remove Item

 将通过取入一个变量值来从数组中删除一个项目

Resize

节点将取入一个数组和一个整型值,该整型值为该数组的新的容量大小

Array Elem

 允许您将一个数组的一个特定索引设置为特定的值。

二、Map 

Map:是一种键值对容器,里面的数据都是成对出现的(Key,Value),Value通过Key值来获取,且Key值不能重复。

一个Key值对应一个Value,Key值不能重复,Value值可以

 用法:

节点

描述

Add

讲一个键值对添加到Map

Clear

清除Map的所有条目

Contains 

检查是否提供的Map中有键存在

Find 

查找提供的键相关连的值

Keys

 输出Map中所有键的阵列

Values

输出Map中所有值得阵列

Remove

从Map中移除一个键值对

Length

提供的Map中的条目数量

三、Set

Set:一种包含已排序对象的关联容器,只是单纯键的集合,键即是值。set内部用平衡二叉树实现,便于元素查找。Set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。

用法:

节点

描述

Add

将一个项目添加到Set

Clear

清除Set中的所有项目

Contains Item

检查Set中是否包含某个项目

Difference

获取两个Set的相对差,将差指定到一个结果Set中 

Intersection

 获取两个Set的交集,将集指定到一个结果Set中

Length

获取Set中的项目数量

Remove

从Set中移除一个项目

Remove Items

 从Set中移除指定的项目

To Array

 将Set复制到Array

Union

执行两个Set的合并,将合并的指定到一个结果Set中

 

 

 

 

有关【虚幻引擎】UE4/UE5Map、Set、 Array的用法的更多相关文章

  1. ruby - 在 Ruby 中实现 `call_user_func_array` - 2

    我怎样才能完成http://php.net/manual/en/function.call-user-func-array.php在ruby中?所以我可以这样做:classAppdeffoo(a,b)putsa+benddefbarargs=[1,2]App.send(:foo,args)#doesn'tworkApp.send(:foo,args[0],args[1])#doeswork,butdoesnotscaleendend 最佳答案 尝试分解数组App.send(:foo,*args)

  2. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  3. Ruby Koans about_array_assignment - 非平行与平行分配歧视 - 2

    通过ruby​​koans.com,我在about_array_assignment.rb中遇到了这两段代码你怎么知道第一个是非并行赋值,第二个是一个变量的并行赋值?在我看来,除了命名差异之外,代码几乎完全相同。4deftest_non_parallel_assignment5names=["John","Smith"]6assert_equal["John","Smith"],names7end45deftest_parallel_assignment_with_one_variable46first_name,=["John","Smith"]47assert_equal'John

  4. arrays - 这是 Ruby 中 Array.fill 方法的错误吗? - 2

    这个问题在这里已经有了答案:Arraysmisbehaving(1个回答)关闭6年前。是否应该这样,即我误解了,还是错误?a=Array.new(3,Array.new(3))a[1].fill('g')=>[["g","g","g"],["g","g","g"],["g","g","g"]]它不应该导致:=>[[nil,nil,nil],["g","g","g"],[nil,nil,nil]]

  5. ruby - Sinatra set cache_control to static files in public folder编译错误 - 2

    我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.

  6. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  7. Ruby on Rails regexp equals-tilde 与 array include 用于检查选项列表 - 2

    我正在使用Rails3.2.3和Ruby1.9.3p0。我发现我经常需要确定某个字符串是否出现在选项列表中。看来我可以使用Ruby数组.includemethod:或正则表达式equals-tildematchshorthand用竖线分隔选项:就性能而言,一个比另一个好吗?还有更好的方法吗? 最佳答案 总结:Array#include?包含String元素,在接受和拒绝输入时均胜出,对于您的示例只有三个可接受的值。对于要检查的更大的集合,看起来Set#include?和String元素可能会获胜。如何测试我们应该根据经验对此进行测试

  8. ruby - 在 ruby​​ 中使用 .try 函数和 .map 函数 - 2

    我需要从json记录中获取一些值并像下面这样提取curr_json_doc['title']['genre'].map{|s|s['name']}.join(',')但对于某些记录,curr_json_doc['title']['genre']可以为空。所以我想对map和join()使用try函数。我试过如下curr_json_doc['title']['genre'].try(:map,{|s|s['name']}).try(:join,(','))但是没用。 最佳答案 你没有正确传递block。block被传递给参数括号外的方法

  9. ruby - 在 Ruby 中,为什么 Array.new(size, object) 创建一个由对同一对象的多个引用组成的数组? - 2

    如thisanswer中所述,Array.new(size,object)创建一个数组,其中size引用相同的object。hash=Hash.newa=Array.new(2,hash)a[0]['cat']='feline'a#=>[{"cat"=>"feline"},{"cat"=>"feline"}]a[1]['cat']='Felix'a#=>[{"cat"=>"Felix"},{"cat"=>"Felix"}]为什么Ruby会这样做,而不是对object进行dup或clone? 最佳答案 因为那是thedocumenta

  10. ruby - 有人可以解释一下在 Ruby 中注入(inject)的真实、通俗易懂的用法吗? - 2

    我正在学习Ruby,遇到了inject。我正处于理解它的风口浪尖,但当我是那种需要真实世界的例子来学习一些东西的人时。我遇到的最常见的例子是人们使用inject来添加一个(1..10)范围的总和,我不太关心这个。这是一个任意的例子。在实际程序中我会用它做什么?我正在学习,所以我可以继续使用Rails,但我不必有一个以Web为中心的示例。我只需要一些我可以全神贯注的目标。谢谢大家。 最佳答案 inject有时可以通过它的“其他”名称reduce更好地理解。它是一个对Enumerable进行操作(迭代一次)并返回单个值的函数。它有许多有

随机推荐