2012-02-12 7 views
1

私はC++でベクトルを再生していましたが、ユーザー入力を受け取りベクトルに入れる方法はこの:C++のベクトルデータ構造の2次元配列のユーザー入力を行と列の2つのforループを使わずに行う方法

vector<int> v(5); 

cout << "Enter 5 integers: \n"; 

istream_iterator<int> int_itr(cin); 
copy(int_itr, istream_iterator<int>(), v.begin()); 

私は同じことが2D配列のために可能であるかどうかを知りたい:やっての

vector < vector<int> > input(3,vector<int>(2,0)); 

一つの方法は、これとは別に、私は方法を知りたい行と列for i=0 to rows.....for j=0 to cols take inputを反復使用しています多次元配列の入力を処理するベクトルデータ構造

+1

あなたの例では、5つの以上の数字を含む入力してバッファオーバーフローを生成します。 –

+0

1次元配列を2次元配列として扱うには、 'a(i、j):= a [i * cols + j] // pseudo code' – P3trus

答えて

0

ことは可能ですが、私はこれを行うことで、考える:

istream_iterator<int> in_iter(cin), eof; 
vector<vector<int> > vec(3, vector<int>(in_iter, eof)); 
// there you create a vector from a pair of iterators, in_iter and eof