STL random function
std::list<MyGameObject*> mHiddenItems;
std::list<MyGameObject*>::iterator list_itr = mHiddenItems.begin();
MyGameObject* theObject = new MyGameObject();
//заношу данные обьекта и тп.
mHiddenItems.push_back(theObject);
В итоге у меня есть список обьектов mHiddenItems.Мне необходимо создать еще олин списо,например mAnotherItems,который будет состоять из элементов mHiddenItems выбранных случайным образом.Как это осуществить.я думал о random_shuffle,но что-то она у меня не заработала
Генеришь рандомно числа int (функцией rand, например), потом впихиваешь их в этот диапазон (размер контейнера), потом берешь элементы по рандомным индексам. Или берешь рандомное смещение для итератора begin(), и берешь по нему.
Ещё бы он работал - random_shuffle ждёт от тебя итераторы произвольного доступа, а ты передаёшь итераторы списка, контейнера, который их не поддерживает.
P.S.: Самым простым решением (есть и более оптимальное, как мне кажется), думаю, будет скопировать содержимое list в другой контейнер, который поддерживает итераторы произвольного доступа (vector), сделать над ним random_shuffle, а потом вернуть содержимое list'у.