2017-01-30 18 views
-7

私は値Nを取ろうとしており、Nから0(包括的ではない)のすべての値を持つリスト/ベクトルを作成し、次にNを再度作成しようとしています。forループの各繰り返しをリスト/ベクトルに取得する方法は? (C++)

Nを定義した後、私は、次のコードを持っている:

for (int i = N; i > 0; i--) { 
    cout << i << endl; 
} 

これはきれいに必要な値を出力。例えば、N = 3で:

3 
2 
1 
3 

問題は、私は(つまり、平均、範囲、最大値と最小値)に私が欲しいものを計算するためにこれらを操作することができないということです。だから私がする必要があるのは、各反復がそれ自身を配列に入れることです。前の反復がそれ自身を入れたのと同じ配列です。

これはjavascript以外のここで(How to store the result of each iteration of a for loop into an array (Javascript))それは私のためにいくつかの問題を引き起こしています。

なぜ以下はC++で動作しないのですか?どのように変更できますか?

var array = [] 
for (int i = N-1; i < N; i--) { 
    array.push(i); 
} 

int replacint varと同じことは機能しません。

提案がありますか?

+0

[ループ内の空のベクトルに要素を追加するにはどうすればよいですか?](http://stackoverflow.com/questions/17984268/how-do-i-add-elements-to-an-empty-ベクトル・イン・ア・ループ) – JETM

+3

まず、for(int i = N-1; i Fureeish

+1

最初の 'for'ループは半無限に実行され続けます(つまり、' INT_MIN'に到達するまで実行され、その後は未定義の動作です)。 –

答えて

0

まず、var array = []と残りのコードは、c++という構文ではありません。純粋なjavascriptです。コードをある言語から別の言語にコピーすることはできません。必要にベクトルに再びNその後、0にNからすべてelemntsを挿入し、するために

  1. は、ベクトルライブラリを含める:#include <vector>
  2. は使用して、ユーザから(N値を開始cin in iostreamなどをORで手動で入力、つまりN = 6)
  3. 数字の必要な数字をベクトルhere (use push_back)に入力する方法は、次のコードを参照してください。 注:また、@ NathanOliverが述べたように、上級者がNを知っている場合は、reverseを使用できます。

手動で終わりではNも(vec.push_back(N))を押し、その後、simple reference.
  • とするために、ここで見て、ここに誰かが与えられる前に、私は本当にあなたのために、自分でこれをうまくしようと言っています完全なコード。

  • +4

    あなたが取得しようとしている要素の数を前もって知っているなら、reserveへの呼び出しも良いでしょう。 – NathanOliver

    +0

    @ NathanOliver +1、それを追加しました。 –