2017-03-07 70 views
0

我試圖在給定鄰接列表的圖上執行bfs。 以下是一個示例輸入。如何讀取整數直到行尾?

1 2 3 
2 4 
1 
2 3 4 

我知道行數n(版本數)。 每行包含0到n-1個整數。

這是一個嘗試,但它不工作,因爲它讀取所有的整數,直到輸入結束。

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

我想單獨處理每條線。 在搜索時,我找到了向量和stl的答案。如果有人能想出更優雅的解決方案,那將會很好。

感謝。

+0

什麼是不優雅與使用標準庫:

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

然後,使用istringstream讀取行的整數?使用它應該使代碼約4行。 – NathanOliver

+0

*「這是一個嘗試,但它不起作用,因爲它讀取所有整數直到輸入結束。」* - 不正確。發佈一個MCVE來證明這一點。 –

回答

4

首先,閱讀函數getline線:

istringstream is(line); 
int n; 
while(is >> n) { 
    // do something with n 
}