我是c +上的新手,最近发现自己试图理解为什么上面的代码,编译和运行,但是在进入一年级的崩溃之后突然,我发现问题是当我尝试使用“Grade [i] = GradeStudent“而不是”push_back“函数来存储成绩,但我不明白原因,我真的想知道是不是那样工作。 我真的很感激任何帮助。对不起,如果我没有正确地写我的问题,这是我第一次使用stakoverflow提出问题
pd :(我写了preproccesor tagss:#include iostream,vector和iomanip来自标准库)。谢谢
int main() {
std::vector<double> Grade;
int i = 0;
double GradeStudent = 0.0;
std::cout << "introduce the vector valúes.\n";
std::cout << "To end introduce -1.\n";
//Add grades
while(true){
std::cout << "Grade[" << i++ <<"] = ";
std::cin >> GradeStudent;
if(GradeStudent == -1){
break;
}
// Grade.push_back(GradeStudent);
Grade[i] = GradeStudent;//-->if i use that,instead the "push_back" the code crash
}
std::cout << std::endl;
return 0;
}
答案 0 :(得分:0)
Grade[i]
崩溃,因为Grade
向量为空,因此索引i
没有元素。
push_back
将给定元素添加到向量中。