您忘记了列表的模板参数。它不能只是list
它必须是类似的列表std::list<int>
(其中 int 可以是任何其他类型,但由于所有其他成员函数都使用 int,我在示例中使用了 int)
下面的一段代码说明了这个问题:
#include <vector>
#include <list>
int main(int argc, char* argv[])
{
std::vector< std::list<int> > v; // this compiles
std::vector<std::list> v2; // and this doesn't
return 0;
}
正如您在下面看到的,所有编译错误都来自第 7 行(列表缺少模板参数的那一行)。这是在ideone上编译的
prog.cpp: In function ‘int main(int, char**)’:
prog.cpp:7:26: error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’
prog.cpp:7:26: error: expected a type, got ‘list’
prog.cpp:7:26: error: template argument 2 is invalid
prog.cpp:7:30: error: invalid type in declaration before ‘;’ token
prog.cpp:7:28: warning: unused variable ‘v2’ [-Wunused-variable]