Of course, if you don't care about performance, and if there is no STL method for doing this, you can wrap the naive algorithm around a vector relatively easily if you have the generation method and the collision method. Here's an example with arrays, since I don't do C++...
// generates a random, collision-free position for all objects
for (int t = 0; t < objectCount; t++)
{
do { objects[t].randomizePosition(); } while (Collides(t));
}
// checks collision of object at index t with all previous objects
bool Collides(int t)
{
for (int k = 0; k < t; k++)
if (collision(objects[t], objects[k])) return true;
return false;
}