Comment bon marché affecter C-gamme de style à std::vector?

Actuellement je ne les suivants:

//float *c_array = new float[1024];

void Foo::foo(float *c_array, size_t c_array_size) {
  //std::vector<float> cpp_array;

  cpp_array.assign(c_array, c_array + c_array_size);
  delete [] c_array;
}

Comment puis-je optimiser cette affectation? Je voudrais de ne pas effectuer elementwise copie, mais juste changer les pointeurs.

Avec ou sans l'aide de C++0x?
Sans. Mais le C++0x méthode serait également agréable à voir.
Ce n'est pas réellement une double question. La question liée uniquement les adresses allant de vecteur de tableau, pas de tableau de vecteur.
En effet. Liés question a été modifié pour inclure, mais qui a été près d'un an après la première demande, et aucune des réponses de l'adresse de cette partie de la question.
Une mise à jour pour 2018?

OriginalL'auteur Dmitriy | 2011-04-29