YuZ*_*YuZ 0 c++ stl vector ifstream
我有一个包含6291456个数字的.txt文件,没有别的.在读完所有内容并push_back进入向量后,该vector.size()函数返回6291457.这个附加元素来自何处?
int disparity;
ifstream disparity_txt;
disparity_txt.open(path);
while(!disparity_txt.eof())
{
disparity_txt >> disparity;
vec_disparities.push_back(disparity);
}
cout << vec_disparities.size() << endl;
disparity_txt.close();
Run Code Online (Sandbox Code Playgroud)
不要使用while(!disparity_txt.eof()) 它没有做你想象的(eof只会在读取流结束后设置,所以通常最后一次迭代是错误的):
做:
while(disparity_txt >> disparity)
{
vec_disparities.push_back(disparity);
}
Run Code Online (Sandbox Code Playgroud)