2017-10-11 13 views
2

私はこのdouble forloopを書いて、これがこのベクトルのすべての値を出力するかどうかを確認することを期待しますが、動作しません。data [i] .at(j)かなり私も動作しません。この方法を、試してみたのいずれかdata.at(I).AT(i)がエラーであるC++出力の2Dベクトル

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) cout << data.at(i).at(j) << ' '; 
    cout << endl; 
} 

は、これらのいずれかをい

vector<int> data; //it filled with some integers with x rows and y columns 

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) cout << data[i].at(j) << ' '; 
     cout << endl; 
} 

を理解していませんマイナーフィックスで作業しますか?または彼らは全く働かないのですか?ここ

+1

int'sは '.at'機能を持っていないので、'です。あなたは2Dベクトルを持っていません。 –

+0

ベクトルタイプをdoubleに変更するだけで動作しますか? int型のベクトルを使用したい場合はどうすればいいですか? – rrc

+0

@rrcはありません。私の答えを確認してください。 – gsamaras

答えて

2

フォーカス:

data[i].at(j) 

位置iの索引あなたのベクトル、あなたはそれのi番目の数を取得します。これはタイプintです。

次に、にat()という名前のメソッドを要求します。これはプリミティブ型intによって提供されていません。

あなたは1Dと2Dベクトルをエミュレートしようとしている場合は、あなたがこれを行うことができます:

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) 
     cout << data[i + j * col] << ' '; 
    cout << endl; 
} 
関連する問題