0
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 []が必要なのですか?

4

1 に答える 1

1

_Pins上記の例では、シーケンシャル コンテナーであると想定しています。

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

_Pins[_num_pins]次のコード行は、要素に2 回アクセスします。

  1. オブジェクトを取得する右側
  2. 左側でオブジェクトの名前を取得します。

次に、オブジェクトの名前をインデックスとして使用して、オブジェクトを内部に配置します_pin_cmp(順不同マップ)。この操作の正確な動作については、こちらで説明しています。

于 2013-06-17T05:57:41.050 に答える