首页 > 解决方案 > 用用户的输入填充向量

问题描述

我正在学习 c++,但在用用户输入填充向量时遇到问题。w每当我尝试运行我的代码时,都会弹出一个窗口,其中写有“向量下标超出范围”。

#include<iostream>
#include<vector>


using namespace std;

 
int main()
{
    
    int s(0), values(0);
    vector <int> grades;
    cout << "Enter the number of grades you want to enter: \n";
    cin >> s;

    cout << "Enter the values:";
    for (int i(0); i < s; i++)
    {
        cin >> values;
        grades.push_back(values);

    }
    int grades_size(grades.size());
    

    int average(0);
    for (int m(0); m <= grades_size; m++)
    {
        average += grades[m];
    }
    
    average /= grades_size;
    cout << "Your average is" << average;


    return 0;
}

标签: c++vector

解决方案


您可以使用流从输入中读取内容。

以下示例显示了如何使用范围的简洁语法来做到这一点:

#include <iostream>
#include <range/v3/view/istream.hpp>
#include <range/v3/range/conversion.hpp>
int main()
{
    auto vec = ranges::istream<int>(std::cin) | ranges::to_vector;

    for (auto elem : vec) {
        std::cout << elem << std::endl;
    }
}

推荐阅读