utiliza sirve que para array c++ vector

c++ - sirve - para que se utiliza memset en c



Memset en el vector C++ (3)

Otra forma, creo que la vi primero en el libro de Meyers:

// Swaps with a temporary. vec.swap( std::vector<int>(vec.size(), 0) );

Su único inconveniente es que hace una copia.

¿Hay alguna función equivalente de memset para vectores en C ++?

(Método no clear() o erase() , quiero mantener el tamaño del vector, solo quiero inicializar todos los valores.)


Si su vector contiene tipos de POD , es seguro usar memset en él; se garantiza que el almacenamiento de un vector sea contiguo.

memset(&vec[0], 0, sizeof(vec[0]) * vec.size());

Editar: Perdón por lanzar un término indefinido hacia usted: POD significa POD , es decir, los tipos que estaban disponibles en C y las estructuras creadas a partir de ellos.

Editar nuevamente: como se señala en los comentarios, aunque bool es un tipo de datos simple, el vector<bool> es una excepción interesante y fallará miserablemente si intentas usar memset en él. La respuesta de Adam Rosenfield todavía funciona perfectamente en ese caso.


Use std::fill() :

std::fill(myVector.begin(), myVector.end(), 0);