Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 地图中用户定义的数据类型有问题_C++_Maps_User Defined Types - Fatal编程技术网

C++ 地图中用户定义的数据类型有问题

C++ 地图中用户定义的数据类型有问题,c++,maps,user-defined-types,C++,Maps,User Defined Types,目标:通过钥匙、学生编号制作学生注册地图 问题:似乎由于某种原因,当我向地图添加对象时,操作系统会使我的程序崩溃 我的注册对象的结构: private: std::string fName; std::string lName; long studentId; unsigned semester; Vector<Result> results; //User defined data structur

目标:通过钥匙、学生编号制作学生注册地图

问题:似乎由于某种原因,当我向地图添加对象时,操作系统会使我的程序崩溃

我的注册对象的结构:

private:
std::string fName;         
std::string lName;          
long studentId;            
unsigned semester;          
Vector<Result> results;  //User defined data structure, tested and works
我的主要意见是:

int main()
{
    Registration Regist;
    Registrar R;

    Regist.SetStudentId(200);
    R.setRegistration(Regist);
}

在windows上,程序返回-1073741819。如果这有帮助的话。

你的
向量是否有复制构造函数?如果没有,你需要一个。如果是,您是否使用空列表进行了测试?您显示的所有其他注册成员都可以复制到地图中。快速实验:如果你只是做了一个
std::map
,然后只添加
向量
s,会发生什么?好吧,我刚刚意识到我的注册构造函数没有为向量分配任何内存。IE构造函数
Registration::Registration(){fName=“Not Set”lName=“Not Set”studentId=0;sement=0;}
Hmmm。。。同样的事情,所以我的向量问题似乎。。。谢谢btw@user4581301:)这是否意味着它是我向量中的复制构造函数?不确定你的意思<代码>向量结果
分配向量,但我不知道向量的内部结构。现在我应该问为什么不直接使用std::vector?学校作业?
 void Registrar::setRegistration(Registration& regist)
{
    studentRegistrations[regist.GetStudentId()] = regist; //Crashes here
}
int main()
{
    Registration Regist;
    Registrar R;

    Regist.SetStudentId(200);
    R.setRegistration(Regist);
}