Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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++;模板:可以/如何使用结构作为模板的实例化类型?_C++_Templates - Fatal编程技术网

C++ c++;模板:可以/如何使用结构作为模板的实例化类型?

C++ c++;模板:可以/如何使用结构作为模板的实例化类型?,c++,templates,C++,Templates,具体内容: 我想要下面的结构 struct edgeT { string home; string away; int weight; }; 然后有一个edgeT类型的优先级队列 我编写了一个快速程序来测试优先级队列,但是我得到了以下错误消息 “模板类minPQ”的“模板参数”使用本地类型“Main()::edgeT” 我刚刚在main()例程的开头定义/声明了结构 结构是否必须在其他地方定义 只有在C++11之后,才能将函数中定义的类型用作

具体内容:

我想要下面的结构

struct edgeT {      
  string home;      
  string away;      
  int weight;  
};
然后有一个edgeT类型的优先级队列

我编写了一个快速程序来测试优先级队列,但是我得到了以下错误消息

“模板类minPQ”的“模板参数”使用本地类型“Main()::edgeT”

我刚刚在main()例程的开头定义/声明了结构


结构是否必须在其他地方定义

只有在C++11之后,才能将函数中定义的类型用作模板参数。可以使用C+11,也可以将结构定义放在命名空间范围。

您能告诉我们您是如何尝试使用
minPQ
的吗?错误在哪一行?您缺少
edgeT
的严格弱排序比较器,但是,您引用的错误指向另一个错误。请移动“<代码> EdGET < /C> >代码之外>主< /COD>(它也看起来像您不正确地将其命名为<代码>主< /COD>,C++是区分大小写的)。或者,如果您使用的是gcc,请尝试使用
-std=c++11
开关进行编译。