Is it more efficient to copy a vector by reserving and copying or by creating and swapping

0 votes

I'm attempting to efficiently duplicate a vector. I see two potential strategies:

std::vector<int> copyVecFast1(const std::vector<int>& original)
{
  std::vector<int> newVec;
  newVec.reserve(original.size());
  std::copy(original.begin(), original.end(), std::back_inserter(newVec));
  return newVec;
}

std::vector<int> copyVecFast2(std::vector<int>& original)
{
  std::vector<int> newVec;
  newVec.swap(original);
  return newVec;
}

What is the preferred option, and why? 

I'm trying to find the best approach that won't require extra copying.

Aug 23, 2022 in C++ by Nicholas
• 7,760 points

edited Mar 4 18 views

No answer to this question. Be the first to respond.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP