を人間の助けなければなりません。だからあなたの選択肢は、ヒープ上に割り当てるために(メモリ管理の問題を紹介)、またはその代わりにCスタイルの配列のstd::vector
を使用するか、次のとおりです。
std::vector<int> possibilities(SIZE);
for (int i = 0; i < SIZE; i++)
{
possibilities[i] = i;
}
あなたはもっと派手な取得したい場合は、することができますあなたのためにこのシーケンスを生成するためのSTLを使用します。
// This is a "functor", a class object that acts like a function with state
class IncrementingSequence
{
public:
// Constructor, just set counter to 0
IncrementingSequence() : i_(0) {}
// Return an incrementing number
int operator()() { return i_++; }
private:
int i_;
}
std::vector<int> possibilities(SIZE);
// This calls IncrementingSequence::operator() for each element in the vector,
// and assigns the result to the element
std::generate(possibilities.begin(), possibilities.end(), IncrementingSequence);
なぜ 'std :: vector'を使うことができないのですか? – sharptooth
私はnext_permutation()に配列を渡す必要があります...そして、私はそれが可能な限り簡単に必要なので、私はベクトルの別の "順列"関数を構築したくありません... –
あなたが知っている標準的なC配列としてもベクターですか? int * array =&myvec [0]を使用するだけです。配列は標準配列として使用可能で、基本となるベクトルに要素を追加しない限り固定されます。 – jcoder