Elija m elementos al azar de un vector que contiene n elementos

Tengo un vector que contienen elementos. Necesito elegir un subconjunto dem elementos al azar del vector sin repetición. ¿Cuál es la forma más eficiente de hacer esto? Necesito hacer esto miles de veces en mi código.

La solución que tengo en mente es usarrand() para generar un número aleatoriok Entre0 yn. Luego elige lakth elemento en el vector e insértelo en unastd::set. Siga haciendo esto hasta que el tamaño del conjunto sea igual am. Ahora estoy seguro de que el conjunto contienem elementos únicos elegidos al azar del conjunto den elementos.

¿Cuáles son las otras posibles soluciones?

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta