将int转换为vector <int>任何想法时出错?</int>

时间:2012-09-04 13:27:46

标签: c++ vector int

我是C ++的新手,不知道出了什么问题。这是我在uni的程序设计课程中给出的一项任务,旨在让用户输入成绩矢量并确定成绩是否合格。当我编译时,我最终得到一个错误,说明q1.cpp:30:21:错误:无法将'y'从'int'转换为'std :: vector' 不太确定为什么。抱歉格式不正确。

我已经添加了代码但不知道如何包装它。

#include <vector>
#include <cstdlib>
#include <iostream>

using namespace std;

int calcNumberOfPasses(vector<int> grades){
int x;
    for (int i=0; i<grades.size(); i++){
        cin >>grades[i];
    }
    cin >> x;
}



int main() {
    int y;
    vector<int> nGrade;
    nGrade.push_back(y);
    cout << "Enter how many grades you want to enter";
    for (int i=0; i<nGrade.size();i++){
        cin >> nGrade[i];
    }
    cin >> y;
    if (y>=50){
        cout << "this is a passing grade";
    }
    calcNumberOfPasses(y);
}

2 个答案:

答案 0 :(得分:4)

函数calcNumberOfPasses期望类型为vector<int>的参数,您传递的是int类型的参数。您可以从错误消息中解决这个问题。

您正在将未定义的值复制到此行的向量中:

nGrade.push_back(y); // y hasn't been initialised yet, you probably want to remove this line.

接下来,你循环了尚未初始化的等级向量的大小。

您可能希望calcNumberOfPasses(nGrades);

顺便说一下,你应该使用对向量的引用,以避免复制它。

总之,我会通过所有这些代码并重新开始。没有冒犯!

答案 1 :(得分:1)

vector是一个集合 - 一组基类的项目。它在概念上类似于数组。您正在尝试重复加载单个变量,然后将其传递给期望vector的函数。

尝试分解您正在编写的功能的步骤。你是:

  1. 将单个未初始化的int添加到vector
  2. 尝试检索一个数字以控制您想要输入的成绩数。
  3. 将一个额外的号码读入y。
  4. 将该单个数字传递给需要数组的函数。
  5. 这个功能有很多问题;我认为你需要确定哪些数据需要去哪里。