我已经为任意模板迭代器构造了一个模板,但是它不起作用,我也不知道为什么……有人可以帮我吗?

模板:

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/

10-11 22:41
查看更多