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

Popular posts from this blog

'hasOwnProperty' in javascript -

python - ValueError: No axis named 1 for object type <class 'pandas.core.series.Series'> -

java - How to provide dependency injections in Eclipse RCP 3.x? -