1. TArray
    1. - Fast element iteration. - memory efficient.
    2. Reserve
      1. InAllocator::SizeType Number
    3. RemoveAtSwap
      1. At index
    4. RemoveSwap
      1. At element's index
    5. RemoveSingleSwap
      1. At first occuring element's index
    6. All allocator policies are currently using SizeType = int32;
  2. TSet
    1. - Order is irrelevant. - O(1) (very fast) in adding, finding, and removing elements at the cost of having slightly less memory savings like TArray. - unique elements only (usually. Can be changed with second template parameter 'KeyFuncs')
    2. Reserve
      1. int32 Number
    3. Reset
    4. @todo Hash
  3. TMap
    1. TSet<ElementType, KeyFuncs, SetAllocator>
  4. ...
  5. Actor.h line 86 TInlineComponentArray
    1. TInlineComponentArray : public TArray<T, TInlineAllocator<NumElements>>
      1. class T
      2. uint32 NumElements = NumInlinedActorComponents // 24
  6. Has optional template argument specifying the allocator policy 'typename InAllocator = FDefaultAllocator' You can sometimes improve performance by simply changing the allocator policy
    1. TInlineAllocator
      1. uint32 NumInlineElements
      2. typename SecondaryAllocator = FDefaultAllocator
    2. TNonRelocatableInlineAllocator
      1. uint32 NumInlineElements
    3. TFixedAllocator
      1. uint32 NumInlineElements
    4. The reflection system (UPROPERTY) currently doesn't support any container class using non-default allocator types.
  7. Optional template argument specifying the set allocator policy 'typename SetAllocator = FDefaultSetAllocator' Tells how many hash buckets should be used
    1. Want to create your own set allocator policy? Inherit from TSetAllocator (Containers/ContainerAllocationPolicies.h)
    2. TSet uses special 'set' allocators. TInlineAllocator, TFixedAllocator, etc. cannot be used
  8. Optional template argument specifying KeyFuncs 'typename KeyFuncs = DefaultKeyFuncs<ElementType>' Defines how elements are searched, compared, and hashed
    1. Want to create your own KeyFuncs? Inherit from BaseKeyFuncs (Containers/Set.h)
  9. Want to create your own allocator policy? Take a look at FContainerAllocatorInterface (Containers/ContainerAllocationPolicies.h) It solely exists for documenting most things you need to know.