Как получить случайный элемент из контейнера C ++?

Каков хороший способ получить [псевдо-] случайный элемент из диапазона STL?

Лучшее, что я могу придумать, - это выполнить std :: random_shuffle (c.begin (), c.end ()) , а затем взять мой случайный элемент из c.begin ( ) .

Однако мне может понадобиться случайный элемент из контейнера const , или мне может не потребоваться стоимость полного перемешивания.

Есть ли способ лучше?

47
задан Ciro Santilli 新疆改造中心法轮功六四事件 11 May 2018 в 17:33
поделиться