Выберите m элементов случайным образом из вектора, содержащего n элементов

У меня есть вектор, содержащийn элементы. Мне нужно выбрать подмножествоm элементы случайным образом из вектора без повторения. Каков наиболее эффективный способ сделать это? Мне нужно сделать это несколько тысяч раз в моем коде.

Решение на вершине моего ума заключается в использованииrand() генерировать случайное числоk между0 а такжеn, Затем выберитеkй элемент в векторе и вставить его вstd::set, Продолжайте делать это, пока размер набора не станет равнымm, Теперь я уверен, что набор содержитm уникальные элементы, случайно выбранные из множестваn элементы.

Каковы другие возможные решения?

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос