If I have two `std::vector` objects and I attempt to copy one to another using the assignment operator:

```
v2 = v1;

```

Will it create a deep copy of the array pointed to by `v1` automatically? Or do I have to overload the assignment operator whenever I want to do this, if I am using `std::vector` in another class that I am writing?