分配给结构内部的引用
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;
}
但最好完全避免它。
我创建了一个引用向量的结构,但在创建一个结构数组后,我在分配给它时遇到了问题。
这是我的结构:
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;
}
但最好完全避免它。