Pourquoi cette note de code fonctionne-t-elle (le code se compile et s'exécute bien, mais ne montre pas réellement les permutations) :
int main(int argc, char *argv[])
{
long number;
vector<long> interval;
vector<long>::const_iterator it;
cout << "Enter number: ";
cin >> number;
while(number-->0){
interval.push_back(number);
}
do{
for(it = interval.begin(); it < interval.end(); ++it){
cout << *it << " ";
}
cout << endl;
} while(next_permutation(interval.begin(), interval.end()));
return (0);
}
Mais après avoir changé cette ligne :
while(next_permutation(interval.begin(), interval.end()));
avec :
while(prev_permutation(interval.begin(), interval.end()));
La permutation ne modifie-t-elle pas les éléments du vecteur en agissant sur les positions ?
PS : J'ai modifié le code maintenant.