复杂的矢量指针

时间:2013-01-10 08:10:04

标签: c++ pointers vector unordered-map

vector <unordered_map <string, DomainInfo *> *> victimDomains;

这是什么意思?

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

让我们说DomainInfo有两个属性IDname。如果我想将DomainInfo中的第二个元素放在unordered_map的第三个victimDomains中,我该怎么称呼它? 我的问题不正确吗?

谢谢,

2 个答案:

答案 0 :(得分:6)

简单来说,它是(vector映射unordered_map s到string指针的DomainInfo指针。 (使用括号表示级别)

你想做

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

A - 第二个元素 - 指向地图的指针 B - 取消引用指向地图的指针以获取地图 C - 获取DomainInfo指针(需要输入正确的字符串)
D - 使用 - &gt;用于从DomainInfo指针访问名称字段的语法。


以上分多步 -

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

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

Name name = dmInfo->name;

答案 1 :(得分:1)

要访问特定的DomainInfo,您需要知道unoreder_map中的密钥。完全如此,你的问题(如何访问?)无法回答。但是,如果您知道DomainInfo的密钥是假设"blah",那么您可以这样做:

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