尝试运行该程序时出现崩溃,错误是表达式:超出范围的向量下标。有什么问题?
std::vector<DepositCustomers> Deposits; //depositcustomers is a class
std::ifstream fin("in.txt");
int contor = 1;
while (!fin.eof())
{
Deposits.resize(contor);
fin >> Deposits[contor];
contor++;
}
我试过不调整大小,是同一回事。
最佳答案
如果将向量的大小调整为,则向量中只有1个项目的空间。由于向量使用基于0的索引,因此此项位于索引1
处。因此,当您尝试将某些内容放置在索引0
上时,它会因观察到的错误而失败。
为了使代码正常工作,您可以进行以下更改:
fin >> Deposits[contor - 1];
也许还更好,使用
1
可以省去调整大小的麻烦。