Нужно вызывать функцию rand() из stlib.h, и делать так rand() % list.count() , чтобы рандомное число не превышало номера списка. И ещё нужно как то так, чтобы ето случайное число не повторилось несколько раз...
В общем алгоритм я придумал такой: создаём новый список (temp),
копируем в него старый (который у меня член класса главного окна),
старый очищаем, работаем с temp (запускаем цикл, итераторы, вся фигня)
в теле цикла вызываю функцию добавления элемента в указанную позицию, в первый аргумент передаём rand() % list.count()
void artur :: addObjectToTable(int position, Kitap object)
{
int counter = 0 ;
QLinkedList<Kitap>::iterator listIterator = list.begin();
QLinkedList<Kitap>::iterator end = list.end();
for( ; listIterator != end; listIterator++)
{
counter++;
if(counter == position)
{
list.insert(listIterator, object);
}
}
artur::refreshTableSlot();
exercisePartTwoSet();
}
только вот когда начал реализовывать возникло куча проблем, и вообще правильны ли мои мысли.
Что скажете, господа?
update:
вот примерный код:
void artur:: randTableSlot()
{
QLinkedList<Kitap> temp = list;
list.clear();
QLinkedList<Kitap>::iterator listIterator = temp.begin();
QLinkedList<Kitap>::iterator end = temp.end();
int counter = 0;
for( ; listIterator != end; listIterator++)
{
counter++;
Kitap cD = *listIterator;
if(counter == rand() % temp.count())
{
list.insert(listIterator,cD);
}
}
statusBar()->showMessage(tr("Randomed!!!"));
}