2017-03-07 6 views
0

私は、隣接リストがあれば、グラフ上でbfsを実行しようとしています。 ここにサンプル入力があります。行末まで整数を読み込む方法は?

1 2 3 
2 4 
1 
2 3 4 

私は、行数n(verits数)を知っています。 各行には0〜n-1の整数が含まれます。

これは試行されましたが、入力の終わりまですべての整数を読み込むので動作しません。

for(i=0;i<n;i++) 
{ 
    while(cin>>v) 
    {insert(i,v);} 
} 

各行を別々に処理したい。 検索すると、ベクタとstlで回答が見つかりました。誰かがより洗練されたソリューションを考え出すことができればいいです。

ありがとうございました。

+0

標準ライブラリを使用したエレガントな何をしていませんでしたか?それを使用するとコードは約4行になります。 – NathanOliver

+0

* "これは試行でしたが、入力の最後まですべての整数を読み込むので動作しませんでした。" * - そうではありません。それを証明するMCVEを投稿してください。 –

答えて

4

まず、getlineのと行読み:次に

string line; 
getline(cin, line);  // should be error handling here 

を、istringstreamを使用して行から整数を読む:

istringstream is(line); 
int n; 
while(is >> n) { 
    // do something with n 
} 
関連する問題