我已经为任意模板迭代器构造了一个模板,但是它不起作用,我也不知道为什么……有人可以帮我吗?
模板:
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)
原因是:
有关详细信息,请参见Here。
或者,您可以在循环外使用typedef使其更具可读性:
typedef typename map<type1, type2>::iterator mapIt;
for(mapIt it = thismap.begin(); it != thismap.end(); ++it){
...
}
关于c++ - 遍历 map 的c++模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25246402/