"std :: vector ..." и т. Д. - это полное имя конструктора vector<string>
. "std", потому что он объявлен в пространстве имен std, "basic_string", потому что "string" - это typedef, равный basic_string<char>
и т. д. При использовании шаблонов конечные сгенерированные имена часто бывают очень длинными и трудными для чтения.
То, как я читаю этот код, заключается в том, что LEA ECX загружает ecx с адресом переменной «temp», затем он передается в конструктор, так что объект создается по правильному адресу.