如何在C ++中访问结构中的向量?

时间:2015-09-26 09:22:47

标签: c++

我试图访问我在结构中初始化的向量,但在编译时,打印此错误:

  

mediaselec.cc:在函数' void leeVector_conjunto(ConjuntoEstudiantes&)':       mediaselec.cc:23:4:错误:' ConjuntoEstudiantes'没有名为“asignaturas'         v.asignaturas(num_asignaturas);

#include <vector>
#include <iostream>
using namespace std;

struct Info{
    int id_student;       //id of a student
    vector<double> marks; //Contains all the marks of one student
};

//typedef vector<int> Subconjuntos;
typedef vector<Info> StudentGroup;

/*Read a vector of n student group*/
void enter_group(StudentGroup& v, Subconjuntos& s) {
    //Size of the StudentGroup
    int n;
    cin >> n;
    v = StudentGroup (n);
    //Num. marks of one student
    int num_marks;
    cin >> num_marks;

    //Ignore this part.
    /*
    //Numero de subconjuntos
    int s_subconjuntos;
    cin >> s_subconjuntos;
    s = Subconjuntos (s_subconjuntos);
    for (int i = 0; i < n; ++i) {
        cin >> s[i]; 
    }
    */

    //Read all the students with all the marks and store it in v.
    for (int i = 0; i < n; ++i) {
        cin >> v[i].id_student;
        for (int j = 0; j < num_marks; ++j) {
            cin >> v[i].marks[j];
        }
    }
}


int main() {
    StudentGroup v;
    //Subconjuntos s;
    enter_group(v,s);
}

1 个答案:

答案 0 :(得分:0)

你写的地方

v.asignaturas(num_asignaturas);

我认为你打算

v[n].asignaturas.resize(num_asignaturas);

编辑:当您进行编辑以将变量名称翻译为英语并显示更多代码时,我删除了告诉您更正的行。但这是必要的一步。