Basé sur Kiril V. Lyadvinsky travail, j'ai fait une nouvelle version. Cet extrait de l'utilisation modèle et la surcharge. Avec elle, vous pouvez écrire vector3 = vector1 + vector2
et vector4 += vector3
. J'espère que ça peut aider.
template <typename T>
std::vector<T> operator+(const std::vector<T> &A, const std::vector<T> &B)
{
std::vector<T> AB;
AB.reserve( A.size() + B.size() ); // preallocate memory
AB.insert( AB.end(), A.begin(), A.end() ); // add A;
AB.insert( AB.end(), B.begin(), B.end() ); // add B;
return AB;
}
template <typename T>
std::vector<T> &operator+=(std::vector<T> &A, const std::vector<T> &B)
{
A.reserve( A.size() + B.size() ); // preallocate memory without erase original data
A.insert( A.end(), B.begin(), B.end() ); // add B;
return A; // here A could be named AB
}
Si vous êtes paresseux, vous pouvez le télécharger directement ici.