分配给结构内部的引用

Assigning to a Reference Inside a Struct

我创建了一个引用向量的结构,但在创建一个结构数组后,我在分配给它时遇到了问题。

这是我的结构:

struct name{
        std::vector<Student> &A;
        int a;
        int b;
};

在我的主要任务中,我创建了一个 class 类型的向量 Student,并为该向量分配了值,我将其称为 StudentVector。我正在尝试声明一个结构名称数组,其中包含对我的向量 StudentVector:

的引用
void main(){

std::vector <Student> StudentVector;

....

....

....

name data[5];

for (int i=0;i<5;i++){


           data[i].A = StudentVector;

}

当我这样做时,它会编译,但是当我 运行 我的代码时出现分段错误。

提前感谢您的帮助!

不应该编译,因为没有办法初始化引用'A'。如果你真的需要这样做,用指针替换引用:

struct name {
    std::vector<Student> *A;
    int a;
    int b;
};

std::vector<Student> StudentVector;

for (int i = 0; i < 5; i++) {
    data[i].A = &StudentVector;
}

但最好完全避免它。