Najbardziej wydajny sposób przypisywania wartości do map

Który sposób przypisywania wartości do mapy jest najbardziej wydajny? Czy są one wszystkie zoptymalizowane do tego samego kodu (na większości nowoczesnych kompilatorów)?

   // 1) Assignment using array index notation
   Foo["Bar"] = 12345;

   // 2) Assignment using member function insert() and STL pair
   Foo.insert(std::pair<string,int>("Bar", 12345));

   // 3) Assignment using member function insert() and "value_type()"
   Foo.insert(map<string,int>::value_type("Bar", 12345));

   // 4) Assignment using member function insert() and "make_pair()"
   Foo.insert(std::make_pair("Bar", 12345));

(Wiem, że mogę przetestować i sprawdzić wyjście kompilatora, ale to pytanie powstało teraz i jedyną rzeczą, którą mam pod ręką, jest mój telefon komórkowy ... hehe)

questionAnswers(6)

yourAnswerToTheQuestion