bool ready = false; while(ready == false) { ready = true; for(std::vector::iterator i = v.begin(); i != v.end(); ) { if(i->member > (i+1)->member) { iter_swap(i, i+1); ready = false; } i++;a } }