Consider a `std::vector`:

```
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);

```

Would `vec.clear()` and `vec = std::vector<int>()` do the same job? What about the deallocation in second case?