Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

STL random function

22K
22 ноября 2006 года
difma.km
1 / / 22.11.2006
У меня есть следующий код:
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,но что-то она у меня не заработала
63
22 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
Генеришь рандомно числа int (функцией rand, например), потом впихиваешь их в этот диапазон (размер контейнера), потом берешь элементы по рандомным индексам. Или берешь рандомное смещение для итератора begin(), и берешь по нему.
1.8K
23 ноября 2006 года
k3Eahn
365 / / 19.12.2005
difma.km
Ещё бы он работал - random_shuffle ждёт от тебя итераторы произвольного доступа, а ты передаёшь итераторы списка, контейнера, который их не поддерживает.

P.S.: Самым простым решением (есть и более оптимальное, как мне кажется), думаю, будет скопировать содержимое list в другой контейнер, который поддерживает итераторы произвольного доступа (vector), сделать над ним random_shuffle, а потом вернуть содержимое list'у.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог