我遇到了以下代碼段的問題。stringstream問題 - 向量迭代器無法取消引用
它與stringstream「stringstream css(cv.back())」有關。如果它被註釋掉,程序將運行正常。
這真的很奇怪,因爲我一直在我的一些程序中得到它,但如果我只是創建一個控制檯項目,代碼將運行良好。在我的一些Win32程序中,它會在某些情況下不會(然後它會返回「vector iterator not derefereenable」,但它會編譯得很好)。
任何想法都將非常感激。謝謝!
vector<double> cRes(2);
vector<double> pRes(2);
int readTimeVects2(vector<double> &cRes, vector<double> &pRes){
string segments;
vector<string> cv, pv, chv, phv;
ifstream cin("cm.txt");
ifstream pin("pw.txt");
ifstream chin("hm.txt");
ifstream phin("hw.txt");
while (getline(cin,segments,'\t')) {
cv.push_back(segments);
}
while (getline(pin,segments,'\t')) {
pv.push_back(segments);
}
while (getline(chin,segments,'\t')) {
chv.push_back(segments);
}
while (getline(phin,segments,'\t')) {
phv.push_back(segments);
}
cin.close();
pin.close();
chin.close();
phin.close();
stringstream phss(phv.front());
phss >> pRes[0];
phss.clear();
stringstream chss(chv.front());
chss >> cRes[0];
chss.clear();
stringstream pss(pv.back());
pss >> pRes[1];
pss.clear();
stringstream css(cv.back());
css >> cRes[1];
css.clear();
return 0;
}
你確定'cv'不是空的嗎? – Naveen 2010-04-19 13:22:16
你需要多解釋一下。你遇到什麼問題? – 2010-04-19 13:31:53
不解決你的問題,但這應該真的重構。你有基本相同的代碼,你用不同的名字四次調用。 – 2010-04-19 13:34:50