将结构向量推入结构?

Posted

技术标签:

【中文标题】将结构向量推入结构?【英文标题】:pushing a vector of structures into a structure? 【发布时间】:2019-03-06 17:05:07 【问题描述】:

我需要创建一个结构 student 来嵌套另一个名为 course 的结构。然后在结构“课程”中填写学生注册的人数以及他们的 ID 和姓名

我不确定如何将结构“课程”属性推回已经将结构课程作为向量的结构学生中

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

    struct course

        int ID;
        string name;

    ;
    struct student
        int ID;
        string name;
        vector <course> ofcourses;


    ;

    void studentDeclare(student &B1)

        int coursecount;
        cout <<" Student ID: " <<endl;
        cin>>B1.ID;
        cout <<" Student name: " <<endl;
        cin>>B1.name;
        cout <<" How many courses?: " <<endl;
        cin >> coursecount;

        int TempID;
        string TempName;
        for(int i = 0; i<coursecount;i++)
        
            cout <<" Enter course ID: " <<endl;
            cin >> TempID;
            B1.ofcourses.ID.push_back[TempID];
            cout <<" Enter course name: " <<endl;
            string TempName;
            cin>>TempName;
            B1.ofcourses.name.push_back[TempName];
        

    ;

    int main()

    student boy;
    studentDeclare(boy);
    print(boy);

    system("pause");

【问题讨论】:

【参考方案1】:
B1.ofcourses.ID.push_back[TempID];
B1.ofcourses.name.push_back[TempName];

不对。

B1.ofcoursesstd::vector&lt;course&gt;。它没有名为IDname 的成员。

您需要构造一个course 对象并将其推送到B1.ofourses

for(int i = 0; i<coursecount;i++)

    course c;
    cout <<" Enter course ID: " <<endl;
    cin >> c.ID;
    cout <<" Enter course name: " <<endl;
    cin >> c.name;

    B1.ofcourses.push_back(c);

【讨论】:

澄清了很多,所以我可以通过这种方式访问​​它们:B1.ofcourses.name.push_back[TempName]; ,,,,,,但必须按成员将它们复制到其中吗? @user10798572,我没关注你问是否可以使用B1.ofcourses.name.push_back[TempName];访问std::vector中的对象?

以上是关于将结构向量推入结构?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能将整数向量推入 C++ 中的二维整数向量?

将对象推入向量的问题

在展开期间将向量成员推入向量:vector.push_back(vector[0])

如何将字符串的字符推入二维向量[关闭]

如何将字符串(逐个字符)推入字符串向量

如何使用循环将向量推入 queue<vector<int>>?