模板问题:这种情况该怎么写??

flying_music 2021-05-08 08:42:07

#include <list>
#include <unordered_map>

using namespace std;

template<typename Type>
class A
{
list<Type> lst;
unordered_map<Type, list<Type>> m1; //OK
//unordered_map<Key, list<Type>::iterator> m2; //ERROR 如何改正???
unordered_map<Type, list<int>::iterator> m3; //OK

};

int main() {
return 0;
}

...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flying_music 2021-05-09
  • 打赏
  • 举报
回复
容器中的复杂类型可以用typedef定义一个新名字,如果后面的类型编译器不能直接识别,就在其前面加个typename
flying_music 2021-05-09
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
list的模板参数是两个,只不过平时你用具体类型时不用你写,因为有默认。如果是模板参数,则要把第二个写出来,就是那个alloc
不是这个问题吧,现在是编译不知道list<Type>::iterator是一个类型,感觉就是编译器的缺陷,用typede 定义一下就可以了
源代码大师 2021-05-09
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
真相重于对错 2021-05-09
  • 打赏
  • 举报
回复
unordered_map<Key,typename list<Type>::iterator> m2; //ERROR 如何改正???
真相重于对错 2021-05-08
  • 打赏
  • 举报
回复
list的模板参数是两个,只不过平时你用具体类型时不用你写,因为有默认。如果是模板参数,则要把第二个写出来,就是那个alloc

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧