C++STLアルゴリズム編next_permutation、prev_permutationはシーケンスを次の文字のシーケンスアルゴリズムに変更します
13051 ワード
next_permutation(beg,end)とprev_permutation(beg,end)の特徴
1:反復器タイプ:双方向反復器2:戻り値タイプ:bool 3:アルゴリズム機能:現在のシーケンスを次の文字列または上の文字列列に変更4:複雑度:線形複雑度
1:反復器タイプ:双方向反復器2:戻り値タイプ:bool 3:アルゴリズム機能:現在のシーケンスを次の文字列または上の文字列列に変更4:複雑度:線形複雑度
#include
#include
#include
using namespace std;
int main()
{
vector<int>coll = { 1,2,3 };
copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," "));
cout << endl;
next_permutation(coll.begin(),coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
next_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
next_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
next_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
next_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
next_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
prev_permutation(coll.begin(), coll.end());
copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}