当我尝试在Linux环境中使用g ++ 11编译代码时,我得到了一面文字。我已经将错误的原因跟踪到一行代码,我正在尝试将元素添加到地图中。以下是一些相关代码:
set<Tuple> trash;
Relation garbage(trash, name, scheme_list);
Relations.insert({name, garbage});
Tuple和Scheme类(scheme_list的类型为Scheme)都只是vector<string>
。 Relation类定义为
public:
Relation(set<Tuple> TUPLES, string NAME, Scheme SCHEMES);
~Relation();
和Relation构造函数是
Relation::Relation(set<Tuple> TUPLES, string NAME, Scheme SCHEMES)
{
Tuples = TUPLES;
Name = NAME;
Schemes = SCHEMES;
}
目前代码的意图是创建一组空的元组,使用name
中的现有名称和scheme_list
中的方案列表来创建类{{1}的实例使用名称作为键插入Relation
的地图。然而,当我编译代码时,它给了我一个巨大的“使用已删除函数”错误列表,并且“Relation :: Relation(const Relation&amp;)被隐式删除,因为默认定义将是格式错误”,后者是仅引用编译器给出的任何代码。导致此错误的原因是什么,为什么只有在我尝试将元素插入地图时才会出现?