gpt4 book ai didi

c++ - 动态 vector 大小分配

转载 作者:行者123 更新时间:2023-11-30 01:50:14 26 4
gpt4 key购买 nike

我是 C++ 初学者。目前正在学习 vector 。我正在编写一个程序来计算给定成绩的平均值。我写的程序只接受5个等级。我如何修改程序,以便为任意数量的等级自动分配 vector 空间?也就是说,在“输入成绩:”提示下,我应该能够输入任意数量的成绩,并且必须计算这些成绩的平均值。

#include <iostream>
#include <vector>

using namespace std;

int main() {
vector<int> grades;
int grade;
cout << "Enter grades: ";
for(int i = 1; i <= 5; ++i) {
cin >> grade;
grades.push_back(grade);
} double total = 0;
for(int i = 0; i < grades.size(); ++i) {
total += grades[i];
} double avg;
cout << "Average = " << total / grades.size() << endl;
return 0;
}

最佳答案

看起来您希望行尾(用户点击“输入”)表示成绩结束。

此代码会将整行拉入其 own stream object这与 cin 不同 - 最终将结束

std::string grades_full_line;
std::getline(std::cin, grades_full_line);
std::stringstream grade_stream(grades_full_line);

您现在可以更改循环以将流本身用作条件。当您到达终点时,它将评估为 false

for( grade_stream >> grade; grade_stream; grade_stream >> grade )
{
grades.push_back(grade);
}

关于c++ - 动态 vector 大小分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com