I am computing `float`s from multiple threads and storing the results in non-overlapping ranges of the the same `vector<float>` as follows:

Before running any of the threads I pre-allocated it using `vector::reserve`. 

In each thread a thread-specific `vector` of results is computed and then copied into the target container like this:

```
vector<float>::iterator destination = globalVector.begin() + threadSpecificIndex;
std::copy( localVector.begin(), localVector.end(), destination );

```

Is this a safe practice?