UEC++ 容器:TSet

TSet

  • TSet也是键值容器和TMap类似,但速度快,无需提供单独的键进行关联元素,不允许有重复的键。
  • TSet 也是值类型,支持常规复制、赋值和析构函数操作,以及其元素较强的所有权。集合被销毁时,其元素也将被销毁。键类型也必须是值类型

与TArray的区别:

  • TSet是KV容器
  • TSet不保证数据填充顺序。
  • TSet数据存储时无法重复存储,TArray可以

构建、添加数据:

    TSet<FString> set;
    set.Add(TEXT("set01"));// 添加内容

    TSet<FString> set2;
    set2.Add(TEXT("set02"));

    set.Append(set2); // 合并操作

遍历:

    for (auto& Item : set)
    {
        Item = TEXT("cg01");// 修改值
    }
    for (auto It = set.CreateIterator(); It; ++It)
    {
        *It = TEXT("cg01");// 修改值
    }
    for (auto It = set.CreateConstIterator(); It; ++It)
    {
        *It; // 可获取但无法修改
    }

常用查询函数:

    set.Num(); // 获取容器中元素的数量
    // 检查是否包含给定的键值 返回布尔值
    set.Contains(TEXT("set01"));
    // 返回指向元素的指针,没找到返回空
    set.Find(TEXT("set01"));
    // 将TSet容器转为TArray容器
    set.Array(); 

常用移除函数:

    set.Remove(TEXT("set01")); // 使用给定的值内容
    set.Empty(); // 清空容器,释放空间
    set.Reset(); // 移除元素,但是不释放空间

 

posted @ 2022-09-19 14:38  黎沐不吃香菜  阅读(487)  评论(0)    收藏  举报