ue4 for循环 c++
时间: 2023-11-30 17:39:15 浏览: 65
UE4中的for循环与C++中的for循环基本相同,可以使用break和continue关键字来控制循环。在UE4中,for循环的语法如下:
```
for (int32 Index = 0; Index < Array.Num(); ++Index)
{
// 循环体
}
```
其中,int32是UE4中的整型数据类型,Array.Num()是获取数组元素个数的函数。在循环体中,可以使用Index来访问数组元素。除了普通的for循环,UE4还提供了一些其他类型的循环,例如foreach循环和while循环等。
相关问题
UE4 C++ 结构体数组
在UE4中,我们可以使用C++结构体数组来存储一组相关的数据。下面是一个简单的示例,展示如何定义和使用结构体数组:
首先,我们定义一个包含两个字段的结构体:
```c++
USTRUCT(BlueprintType)
struct FMyStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
int32 id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
FString name;
};
```
然后,我们可以定义一个结构体数组来存储多个 FMyStruct 对象:
```c++
USTRUCT(BlueprintType)
struct FMyStructArray
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructArray")
TArray<FMyStruct> myStructs;
};
```
在上面的例子中,我们定义了一个名为 FMyStructArray 的结构体,它包含一个 TArray 类型的 myStructs 字段,用于存储 FMyStruct 对象。
我们可以在代码中使用结构体数组,如下所示:
```c++
FMyStructArray myArray;
// 初始化结构体数组
for (int i = 0; i < 10; i++)
{
FMyStruct myStruct;
myStruct.id = i;
myStruct.name = FString::Printf(TEXT("Item %d"), i+1);
myArray.myStructs.Add(myStruct);
}
// 遍历结构体数组
for (int i = 0; i < myArray.myStructs.Num(); i++)
{
FMyStruct myStruct = myArray.myStructs[i];
UE_LOG(LogTemp, Warning, TEXT("Item %d: id=%d, name=%s"), i+1, myStruct.id, *myStruct.name);
}
```
在上面的代码中,我们首先创建了一个 FMyStructArray 类型的 myArray 对象,然后使用一个 for 循环来初始化它。最后,我们再次使用 for 循环遍历结构体数组,并打印每个元素的 id 和 name 字段。
注意,如果我们定义了一个 USTRUCT,那么我们需要使用 GENERATED_BODY() 宏来生成相关的代码,否则编译会出错。同时,我们还需要使用 UPROPERTY 宏来指定结构体数组的元素可以在蓝图中进行编辑和读取。
虚幻c++ 循环TMap
在虚幻C++中,可以使用循环来遍历TMap的键值对。下面是一个示例代码:
```cpp
TMap<int32, FString> MyMap;
MyMap.Add(1, "Apple");
MyMap.Add(2, "Banana");
MyMap.Add(3, "Orange");
for (const auto& Pair : MyMap)
{
int32 Key = Pair.Key;
FString Value = Pair.Value;
// 在这里可以对键值对进行操作
UE_LOG(LogTemp, Warning, TEXT("Key: %d, Value: %s"), Key, *Value);
}
```
上述代码中,我们创建了一个TMap对象`MyMap`,并向其中添加了三个键值对。然后,使用`for`循环遍历`MyMap`中的每个键值对。在循环体内部,我们可以通过`Pair.Key`和`Pair.Value`来访问键和值,并进行相应的操作。