2015-07-03 55 views
0

好吧,所以我想我知道我需要做什麼,但我不確定如何去做。結構和不清除/初始化所有數據

我有這樣的結構

struct GItemInfo{ 
string icon = ""; 
string name = ""; 
string subname = ""; 
string rarity = ""; 
vector<string> ToolTip; 
string ToolTipFull; 
bool canuse = true; 
int depth = 0; 
int level = -1; 
int leveladjusted = -1; 
int slotnum = -1; 
bool isslotlocked = true; 
int isslothighlighted = 0; 
FVector location; 
FEntityId id; 
float distancetome = 0.0f; 
bool istrash = false; 
bool ispickuptrash = false; 
bool ispickup = false; 
bool empty = true; 

bool operator<(const GItemInfo& a) const 
{ 
    return distancetome < a.distancetome; 
} 
}; 

這一點我不是使用

vector<GItemInfo> CurrentGearList; 

來初始化它......問題是......即使我做

CurrentGearList.clear(); 
CurrentGearList.resize(0); // Yes i know some of this is voodoo redundant. 
CurrentGearList.resize(20); 

值ID的內部仍然存在,並且從未實際重新初始化。 所以,ID結構是簡單的(int,int)..我怎麼能告訴GItemInfo結構初始化它們爲0,0。

我試過FEntityId id = {0,0};不喜歡那樣。

所以我相信我需要以某種方式在結構體構造函數中工作,我只是不知道該怎麼做。

+1

FEntityId是什麼類型? –

+0

struct FEntityId { \t int A; \t \t \t int B; \t \t }; – Casper7526

回答

1
struct FEntityID{ 
    int A; 
    int B; 

    FEntityID(): A(0), B(0){ 
    } 
}; 

到每一個它的一個對象被創建的int值時將0初始化創建默認的構造函數FEntityID

如果你想控制你的結構對象如何初始化爲每個實例,你也應該爲它們定義你的構造函數。

+0

Durp,謝謝,我猜我需要走高一點......但因爲我們是在這個問題上....我如何做同樣的原則 vector ToolTip; – Casper7526

+0

嗯...我不知道什麼是工具提示:( – Ediac

+0

字符串只是一個載體,我想初始化爲「」裏面GItemInfo 它還有 – Casper7526