我有一段代码说

clock.start();
for (unordered_map <uint32_t,HostTraffic>::iterator internalIPItr = hostTraffic.begin();
     internalIPItr != hostTraffic.end();
     ++internalIPItr)
  {
     if (!pgBulkInserter.insert(NULL, internalIPItr -> first,
                                internalIPItr -> second.inboundFlows,
                                (void*)&(internalIPItr -> second.outboundPortIPs),
                                internalIPItr -> second.roles)) {
        return -1;
     }
     clock.incrementOperations();
  }

我的问题是我不明白
(void*)&(internalIPItr -> second.outboundPortIPs).

您可以将for(....)视为
for (int internalItr = beginning -> end)

其中internalItr的类型为unordered_map,而internalItr->second给出HostTraffic的实例。

最佳答案

internalIPItr->second.outboundPortIPs给出的&地址的指针被转换为void*

10-08 00:41