2016-11-17 12 views
0

私は完全に理解していない初期化に関する短い質問があります。 コードについて:私はペアを探していて、私のベクトル "ベクトルtemp"は、私のループがペアを見つけた場所を保存します。私のTempがいくつかの値で満たされた後、私はペアが見つかった場所を調べるためにチェックします。私はベクトルをループする2つのループを作った。外側ループiと内側ループj。 Tempは、ペアが見つかる場所のj値を格納します。 は今、私の質問については、これは、この部分は、iループにまだあるコード入力のマトリックス入力と解釈

bool repeat = 1; 
    vector<double>::iterator rep_check; 
    rep_check = find(repeat_check.begin(), repeat_check.end(), d_in[i]); 
    if(rep_check == repeat_check.end()) repeat = 0; 
    repeat_check.push_back(d_in[i]); 
    if(!repeat) out.push_back(temp); 
    else out.push_back(vector<int> (1,temp[0])); 

です!!!!! 最後の部分は理解できません: 'vector(1、temp [0])'。これは私の出力行列(2x2行列)にプッシュされますが、私はここで構文を理解していません。この最後の部分をどのように解釈する必要がありますか?

答えて

0

あなたがここでやっていることは、outという名前のコンテナ(私はそれがベクトルだと思います)にvector<int>を押し戻していることです。コンストラクタの呼び出しはvector<int> (1,temp[0])で、サイズ1のを作成し、ベクトル要素(この場合は1つだけ)をtemp[0]の値で初期化するとします。

このベクターコンストラクタのプロトタイプは以下のようになります

explicit vector (size_type n, const value_type& val = value_type(), 
       const allocator_type& alloc = allocator_type()); 

及び説明である: 塗りつぶしコンストラクタ:n個の要素を持つコンテナを作成します。各要素はvalのコピーです。

+0

"out"はベクトルのベクトルであり、新しい列に格納したいので "out"にプッシュするにはvectorを使用しますか?それが正しいなら私は完全にコードを理解しています。 – Schbabako

関連する問題