What is the correct way to reuse a moved container?

```
std::vector<int> container;
container.push_back(1);
auto container2 = std::move(container);

// ver1: Do nothing
//container2.clear(); // ver2: "Reset"
container = std::vector<int>() // ver3: Reinitialize

container.push_back(2);
assert(container.size() == 1 && container.front() == 2);

```

From what I've read in the C++0x standard draft; ver3 seems to be the correct way, since an object after move is in a 

> 
> "Unless otherwise specified, such moved-from objects shall be placed
>  in a valid but unspecified state."
> 
> 
> 

I have never found any instance where it is "otherwise specified".

Although I find ver3 a bit roundabout and would have much preferred ver1, though vec3 can allow some additional optimization, but on the other hand can easily lead to mistakes.

Is my assumption correct?