UE4中的集合 TSet容器

2021-07-26 18:46:39 字數 2220 閱讀 8907

ue4中,除了tarray動態陣列外,還提供了各種各樣的模板容器。這一節,我們就介紹集合容器——tset。類似於tarray,尖括號裡面的t是模板型別,可以是任何c++型別。乙個集合表示了一組互不重複的資料元素。比如tset表示了一組float集合,tset表示了一組fstring集合。

因為這些容器在設計的時候考慮到一致性,所以後面你在學習各種各樣的容器,你都會發現它們都具有相同或相似的函式,呼叫方法也是大同小異。類似tarray,tset也有add函式和emplace函式,舉個例子:

1

2

3

4

5

6

tset<int> set;

set.add( 1 );

set.add( 2 );

set.emplace( 3 );

set.add( 1 );// 這個操作雖然可以編譯執行,但是因為其元素已經存在,所以不會對現有集合發生影響

set.emplace( 2 );// 同上

注意,集合的內部資料結構是二叉樹,而不是簡單地按編號排序的,因此不能通過方括號來訪問集合中的元素。 1

//set[0] = 4; //試圖通過操作符來訪問集合元素,但這樣的操作是非法的

12

voidconsttarray< elementtype > & inelements )

void

因為tset不能通過來訪問容器裡面的元素,所以也不能通過數值來迭代集合。因此我們要通過迭代器來訪問集合:

1

2

3

for( tset<int>::titerator it = set.createiterator(); it; ++it )

1) 交集

tset中的intersect函式提供了計算出兩個集合的交集操作,下面是其函式宣告:

tset intersect( const tset & otherset )
示例:

1

2

3

4

5

6

7

8

9

tset<int> x;

x.add( 1 );

x.add( 2 );

x.add( 3 );

tset<int> y;

y.add( 2 );

y.add( 3 );

y.add( 4 );

tset<int> intersection = x.intersect(y);// intersection的內容為

2) 並集

tset中的union函式提供了計算出兩個集合的並集操作,下面是其函式宣告:

tset union( const tset & otherset )
示例:

tset uni = x.union(y); //

uni的內容為

容器的功能可謂非常強大的,上面只是列舉其常用的一二,在官方的文件中有全面的介紹。同時我們也認識到,容器的學習也是非常簡單的,只要多加練習和查詢文件便可。

ue4集合型別 UE4 集合 TSet容器

一 tset是什麼 ue4中,除了tarray動態陣列外,還提供了各種各樣的模板容器。這一節,我們就介紹集合容器 tset。類似於tarray,尖括號裡面的t是模板型別,可以是任何c 型別。乙個集合表示了一組互不重複的資料元素。比如tset表示了一組float集合,tset表示了一組fstring集...

UE4中的單對映 TMap容器

tmap是ue4中的一種關聯容器,每個鍵都關聯著乙個值,形成了單對映關係。因此你可以通過鍵名來快速查詢到值。此外,單對映要求每個鍵都是唯一的。類似c 中的map.如果你想建立一種單對映關係,每乙個角色的名稱對應著 tmapcharaprice 現在,讓我們來新增角色名稱和 的單對映關係 charap...

UE4 動態陣列 TArray容器

為什麼使用ue4提供的容器類?如果你用過c 的stl庫,你就知道stl提供了各種各樣的容器 資料結構,使得你對處理很多資料的時候非常快捷高效。ue4同樣也提供了類似的庫,庫裡面的型別是以t開頭的,使用ue4提供的容器庫可以更好地實現跨平台。所以在ue4進行開發的時候我們很少去使用stl容器,更多時候...