L'initialisation d'un C++ d'un vecteur aléatoire à valeurs rapide...

Hey, id tiens à faire ce aussi vite que possible, car elle est appelée à BEAUCOUP de choses dans un programme, que je suis en train d'écrire, si il ya une façon plus rapide pour initialiser un C++ d'un vecteur aléatoire à valeurs que:

double range;//set to the range of a particular function i want to evaluate.
std::vector<double> x(30, 0.0);
for (int i=0;i<x.size();i++) {
    x.at(i) = (rand()/(double)RAND_MAX)*range;
}

EDIT:Fixe x initialiseur.

Le type approprié pour l'accès à un vecteur de données de l'élément à l'indice est std::vector<...>::size_type, pas int.
Je suppose commune compilateurs déplacer le range/RAND_MAX hors de la boucle eux-mêmes dans leur optimiseurs?
Curieux de savoir si un profil a effectivement identifié ce problème.

OriginalL'auteur Flamewires | 2010-05-18