Qt Code:
  1. vector < vector <double> > temp;
  2. temp.resize(_set->size());
  3. vector < vector <double> >::iterator iit=temp.begin();
To copy to clipboard, switch view to plain text mode 
What is this iterator for? You only increase it in your loop, but you don't use it anywhere.
Qt Code:
  1. int i=0;
  2. vector < vector <double> >::iterator itra = _set->begin();
  3. srand ((unsigned)time(NULL));
  4. while ( ! _set->empty() ) {
  5. do {
  6. i = rand() % (int) _set->size();
  7. cout << " i " << i << endl;
  8. if (i == 0 && _set->size() == 1) break;
  9. } while (i >= (int) _set->size() || i == 0);
To copy to clipboard, switch view to plain text mode 
These conditions are redundant, I guess. By using % operator variable "i" takes value from interval 0 (incl), set->size()(excl). So if size is 1 then it's no use checking if "i" is zero. Additionally variable "i" will never be greater or equal then set->size().
Qt Code:
  1. temp.insert (temp.begin(), itra+i, itra+i); //here it is filling nothing
To copy to clipboard, switch view to plain text mode 
These two iterators points the same element. insert() method insert sequence from first(incl) to last(excl), so in your case it inserts nothing. Try to pass the last argument as itra+i+1.