文字列を含む 5 つのリストがあります: append、word、middle、combo、prepend です。(または s0、s1、s2、s3、s4)。各リストには、プログラムの開始時に 0 から 256 の文字列をランダムに含めることができます。
可能なすべての組み合わせを出力するにはどうすればよいですか?
for() ループのカスケードを試しましたが、途中のリストに含まれる文字列が 0 (s2 など) の場合は失敗します。
文字列を含む 5 つのリストがあります: append、word、middle、combo、prepend です。(または s0、s1、s2、s3、s4)。各リストには、プログラムの開始時に 0 から 256 の文字列をランダムに含めることができます。
可能なすべての組み合わせを出力するにはどうすればよいですか?
for() ループのカスケードを試しましたが、途中のリストに含まれる文字列が 0 (s2 など) の場合は失敗します。
リストが空かどうかを確認するために if を入れてみませんか?
あなたの例では、配列内の単語を並べ替えたいと想定しています
そして、C++ がタグ付けされているので、次のことをお勧めします (vector
の使用string
)
#include <algorithm>
#include <string>
#include <iostream>
#include <vector>
#include <iterator>
int main()
{
std::vector <std::string> v ={ "append", "word",
"middle", "combo", "prepend"};
//Use v.push_back to add any number of strings
std::sort(v.begin(), v.end());
do {
std::copy(v.begin(), v.end(),
std::ostream_iterator<std::string>(std::cout, " "));
std::cout<<std::endl;
} while(std::next_permutation(v.begin(), v.end()));
}
256 弦の場合は、256!