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
void
const
tarray< 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容器,更多時候...