performance - C++ emplace_back parameters -
here piece of code in daily work. want ask if there difference between 2 cases, in terms of performance.
std::vector< std::pair<std::string, std::string> > avec; // case 1 avec.emplace_back("hello", "bonjour"); // case 2 avec.emplace_back(std::pair("hello", "bonjour"));
following question:
what std::list these 2 cases?
emplace_back construct element in-place, argument passed in perfect-forwarded constructor element.
for 1st case, conceptually 1 step needed, i.e. appropriate constructor of std::pair
invoked construct element directly in vector
.
for 2nd case, 3 steps needed; (1) appropriate constructor invoked construct temporary std::pair
, (2) element move constructed in vector
in-place temporary std::pair
, (3) temporary std::pair
destroyed.
Comments
Post a Comment