将对象分配到unordered_map数组?

时间:2013-06-17 05:44:10

标签: c++ unordered-map

typedef tr1::unordered_map <string, pin *> pin_cmp;
pin_cmp _pin_cmp;
_Pins[_num_pins] = new pin (pin_id, _num_pins, s, n, d);
_pin_cmp[_Pins[_num_pins]->get_name ()] = _Pins[_num_pins]; //performance profiling

你能告诉我代码究竟在做什么吗?

_pin_cmp[_Pins[_num_pins]->get_name ()] = _Pins[_num_pins]; //performance profiling

我不熟悉仍然可以与array []一起使用的unordered_map。我很困惑unordered_map只需要键和值为什么会有array []?

1 个答案:

答案 0 :(得分:1)

在上面的示例中,我希望_Pins是一个顺序容器。

_pin_cmp[_Pins[_num_pins]->get_name ()] = _Pins[_num_pins]; //performance profiling

这行代码访问元素_Pins[_num_pins]两次:

  1. 在右手边获取对象
  2. 在左侧获取对象的名称。
  3. 然后使用对象的名称作为索引将对象放在_pin_cmp(无序映射)中。 描述了此操作的确切行为here