gpt4 book ai didi

c++ - Vector 下标添加元素失败

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:08 25 4
gpt4 key购买 nike

在使用子脚本运算符编写了一些非常简洁的 C++ 之后,程序中出现一个小错误 - 没有输出。

我输入这个(Linux)

54 73 89 43 38 90

然后按 Cntrl + D 键结束。该程序不输出任何内容并停止执行。

来源:

#include <iostream>
#include <string>
#include <vector>

using std::cin;
using std::vector;
using std::cout;
using std::endl;

int main() {
vector<unsigned> scores(11, 0); //11 buckets, all initially 0
unsigned grade;
while(cin >> grade) //read the grades
{
if(grade <=100) //handles only valid inputs
{
++scores[grade/10]; //increment counter for the current cluster
}
}
}

我没有更改 VIM 中的设置,因此编码风格略有不同。我无法想象出了什么问题,while 循环非常标准。它读入成绩,直到发现流无效。然后我检查输入是否小于 100(含)。最后一段代码(相当简洁)在 vector 中找到正确的元素来递增计数器。

我感觉可能是我的输入导致程序无法输出。

编辑 1:我添加了输出语句,我通过使用始终是引用的解引用 a 来做到这一点。

#include <iostream>
#include <string>
#include <vector>

using std::cin;
using std::vector;
using std::cout;
using std::endl;

int main() {
vector<unsigned> scores(11, 0); //11 buckets, all initially 0
unsigned grade;
while(cin >> grade) //read the grades
{
if(grade <=100) //handles only valid inputs
{
++scores[grade/10]; //increment counter for the current cluster
}
}
for(auto it = scores.begin(); it != scores.end(); ++it) {
cout << *it << endl;
}
}

最佳答案

I have a feeling it could perhaps be my input that's causing the program to not output.

不完全是。是你的程序中没有输出语句导致它不输出。

关于c++ - Vector 下标添加元素失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171443/

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