爲什麼這個代碼備註工作(代碼編譯和運行良好,但實際上並沒有顯示排列):C++ <algorithm>排列
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);
}
但改變這一行後:
while(next_permutation(interval.begin(), interval.end()));
與:
while(prev_permutation(interval.begin(), interval.end()));
是不是排列通過作用於位置來改變向量中的元素?
PS: 我已經編輯了代碼。
您發佈了兩次相同的行(用示例更改此行)以及什麼是prev_permutation? – RvdK 2010-06-29 14:57:43
http://www.cplusplus.com/reference/algorithm/prev_permutation/ – 2010-06-29 15:00:34
'prev_permutation'在STL''中。 –
2010-06-29 15:03:54