对的初始化和push_back中的向量错误

时间:2020-04-23 19:52:55

标签: c++ vector

我正在尝试创建一个向量对,首先是一个对象,然后是一个对象指针列表。但是,我不断收到没有匹配功能的错误。

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));

1 个答案:

答案 0 :(得分:1)

您是令人烦恼的分析的受害者。这行

Query blank_query();

实际上声明了一个名为blank_query的函数,该函数不带任何参数,并返回一个Query

您需要执行以下操作:

Query blank_query{};

创建一个Query对象。