作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经为任意模板迭代器构建了一个模板,但是它不起作用而且我不明白为什么...有人可以帮我吗?
模板:
template<typename type1,typename type2>
void printmap(map<type1,type2>&thismap)
{
for(map<type1,type2>::iterator it = thismap.begin(); it != thismap.end(); ++it)
{
//do something
}
}
显示的错误是:
有人可以帮我吗?谢谢:)
最佳答案
轻松的微风美丽,类型名称:
for(typename map<type1,type2>::iterator it = thismap.begin(); it != thismap.end(); ++it)
原因是:
Before a qualified dependent type, you need typename
参见 Here了解详情。
或者,您可以在循环外使用 typedef 以使其更具可读性:
typedef typename map<type1, type2>::iterator mapIt;
for(mapIt it = thismap.begin(); it != thismap.end(); ++it){
...
}
关于c++模板遍历 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25246402/
我是一名优秀的程序员,十分优秀!