所以我做了一個vector<string>
我從文本文件中讀取的行。事情是這些行組成了一小組數據。我想要做的就是迭代這些數據塊。 (可以是每行3或4行,通過查看第2行的內容可以看出)。迭代遍歷矢量時跳過行
一些樣品的數據可以是這樣的:
鏈接
蘋果
或
鏈接
蘋果
香蕉
目前我所試圖做的是:
for(vector<string>::size_type i = 0; i != records.size(); i++){
cout << "Test << endl;
string a = records[i];
string b = records[i+1];
string c = records[i+2];
i += 3;
}
基本上我試圖讓從名字i
跳到名稱,而不管它是3或4行塊。
但是,由於可能很明顯的原因,這是行不通的。問題是:
我如何遍歷一個向量,所以我可以跳線,但它不會迭代/嘗試遍歷每一行,並導致錯誤?
因爲現在當我嘗試這樣做(僅使用2,3行記錄的測試用例),它不起作用。我只應該使用這個循環來閱讀兩次,但我不知何故以更多的方式閱讀。那麼我該如何解決它?
如果'i + 1'或'i + 2'大於'records.size()',會發生什麼? – lcs
爲什麼你在循環中增加三個* i?這意味着每次迭代它將增加*四*。爲什麼不只是做例如實際循環語句中的「i + = 3」? –
對於初學者來說,如果你的文本文件不完全是4行的倍數,你將會遇到緩衝區溢出問題。 – Xirema