La copie de std::vector: préférez la cession ou std::copy?

J'ai deux vecteurs:

std::vector<int> v1, v2;

//Filling v1
...

Et maintenant j'ai besoin de copier v1 à v2. Est-il une raison pour préférer

v2 = v1;

à

std::copy (v1.begin(), v1.end(), v2.begin());

(ou vice versa)?

  • Opérateur d'affectation va faire la bonne chose. La façon dont vous avez écrit copy, il va gâcher si v1 est plus grande que v2.
  • Si v1 n'est pas nécessaire après la copie, vous pourriez juste v2.swap(v1);.
  • Écrire ce que vous voulez faire. Si vous souhaitez affecter un vecteur à l'autre, d'écrire cela.