UE C++中将TArray<uint8>数组某个索引之后的数据赋值给一个新的数组
时间: 2023-09-20 13:11:47 浏览: 182
同样的,你可以使用UE4中TArray的Slice函数来实现这个功能。具体的代码实现如下:
```cpp
TArray<uint8> OldArray = {0x01, 0x02, 0x03, 0x04, 0x05};
int32 Index = 2; // 索引值为2
TArray<uint8> NewArray = OldArray.Slice(Index+1, OldArray.Num() - Index - 1);
```
上述代码中,OldArray是原始的TArray,Index是指定的索引值。NewArray是一个新的TArray对象,它包含了OldArray中索引值为Index+1之后的元素。使用Slice函数需要指定起始索引和元素数量,这里的起始索引为Index+1,元素数量为OldArray.Num() - Index - 1。
需要注意的是,Slice函数返回的是一个新的TArray对象,它的元素类型和原始数组是一样的。在上面的代码中,原始数组是TArray<uint8>类型,Slice函数返回的新数组也是TArray<uint8>类型。如果你需要将新的数组转换为其他类型,可以使用UE4中的Cast函数。例如,如果你需要将TArray<uint8>类型转换为TArray<int32>类型,可以这样实现:
```cpp
TArray<int32> IntArray;
for (uint8 Byte : NewArray)
{
IntArray.Add(static_cast<int32>(Byte));
}
```
相关问题
ue中取Tarray<uint8>长度
您可以使用 Python 中的 len() 函数来获取 Tarray<uint8> 的长度,示例代码如下:
```python
import unreal
# 初始化UE4编辑器
editor = unreal.EditorLevelLibrary()
# 获取具有Tarray<uint8>类型的数据
my_tarray = unreal.TArray(unreal.uint8([1, 2, 3, 4]))
# 获取Tarray<uint8>的长度
length = len(my_tarray)
# 输出结果
unreal.log("Tarray<uint8>的长度为:{}".format(length))
```
C++中TArray<uint8>转string怎么做
您好!感谢您提出问题。将TArray<uint8>转换为string可使用以下代码:
```c++
TArray<uint8> ByteArray = {97, 98, 99}; //此为示例TArray<uint8>
FString StringData = FString((const TArray<FUTF8Char>&)ByteArray);
std::string StdStringData(TCHAR_TO_UTF8(*StringData)); //将FString转换为std::string
```
请注意,此方法将TArray<uint8>转换为FString,然后将FString转换为std::string。如果您只需要FString,则可以将上面的第三行忽略。同时,这里假设TArray<uint8>表示ASCII字符序列,如示例中的"abc"。如果TArray<uint8>表示其他编码,则需要进行相应的编码转换。
希望这能够帮到您!
阅读全文