我正在尝试创建一个向量对,首先是一个对象,然后是一个对象指针列表。但是,我不断收到没有匹配功能的错误。
Query blank_query();
std::list<Movie_Data*> blank_list;
std::vector<std::pair<Query,std::list<Movie_Data*>>> vec (Hsize,std::make_pair(blank_query,blank_list));
我遇到此错误
hash_table.cpp:128:47: error: no matching function for call to ‘std::vector<std::pair<Query, std::__cxx11::list<Movie_Data*> > >::vector(int&, std::pair<Query (*)(), std::__cxx11::list<Movie_Data*> >)’
(Hsize,std::make_pair(blank_query,blank_list));
另一个例子
hash_tbl.push_back(std::make_pair(blank_query,blank_list));
错误
hash_table.cpp:177:61: error: no matching function for call to ‘std::vector<std::pair<Query, std::__cxx11::list<Movie_Data*> > >::push_back(std::pair<Query (*)(), std::__cxx11::list<Movie_Data*> >)’
hash_tbl.push_back(std::make_pair(blank_query,blank_list));
答案 0 :(得分:1)
您是令人烦恼的分析的受害者。这行
Query blank_query();
实际上声明了一个名为blank_query
的函数,该函数不带任何参数,并返回一个Query
。
您需要执行以下操作:
Query blank_query{};
创建一个Query
对象。