2013-01-10 130 views
0

vector <unordered_map <string, DomainInfo *> *> victimDomains;複雜矢量指針

這是什麼意思?

我得到了第一顆星(DomainInfo*),但第二顆星是什麼?

可以說DomainInfo有兩個屬性IDname。如果我想將第二個元素DomainInfo中的第三個unordered_map寫入victimDomains,我怎麼能打電話給它呢? 是我的問題不正確?

謝謝,

回答

6

在普通的英語,它是指向(unordered_map映象不string s到的DomainInfo指針)的一個vector。 (括號內使用,指示水平)

你想幹什麼

(*victimDomains[2])[<domainInfoKey>]->name; 
^B    ^A ^C    ^D 

A - 第二個元素 - 一個指向地圖。
B - 取消引用地圖的指針以獲取地圖。
C - 獲取DomainInfo指針(需要輸入正確的字符串)
D - 使用 - >語法從DomainInfo指針訪問名稱字段。


以上多個步驟 -

unordered_map <string, DomainInfo *> *map = victimDomains[2]; 

DomainInfo *dmInfo = *map[<domainInfoKey>]; 

Name name = dmInfo->name; 
+0

我想還是不要去深 – smttsp

+0

@tusherity燁,就可以得到相當混亂,你可以逐步採取,但深度將不得不分階段或一次穿過。 –

+0

無需編寫代碼和獲得輸出,我不認爲我的大腦想要了解它,但感謝您的幫助 – smttsp

1

要訪問某DomainInfo,你需要知道它在unoreder_map關鍵。正如現在一樣,你的問題(如何訪問?)無法回答。但是,如果你知道DomainInfo的關鍵是,讓我們說,"blah",那麼你會怎麼做:

(*victimDomains[2])["blah"]->name