c++ - 用用户的输入填充向量
问题描述
我正在学习 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;
}
解决方案
您可以使用流从输入中读取内容。
以下示例显示了如何使用范围的简洁语法来做到这一点:
#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;
}
}
推荐阅读
- typo3 - TYPO3:是否可以在项目符号列表组件的描述中包含链接?
- javascript - 需要在开始时显示一个元素,在最右边显示另一个
- laravel - 从 Laravel(在 api 文件夹中)获取数据到 Vue(放在另一个文件夹中)
- python - 在 Python 上解析 UDP 接收到的数据
- iframe - Sharepoint 嵌入 Webpart 找不到文件
- postman - 在基于 SAML/shibboleth 的网站上使用 Postman 进行身份验证,无需使用浏览器
- c - 为什么这显示“无效的类型转换”?
- winapi - 在 64 位和 32 位 (WOW64) 应用程序之间使用 WM_COPYDATA 是否安全?
- git - Kde SVN2Git。错误:存储库“my_repo”中的“branch_1”从分支“branch_2”分支,但后者不存在。无法继续
- sharepoint - 有没有办法将筛选器发送到 Sharepoint 列表并在 Web 部件中查看结果?