C++模板遇到iterator时候遇到的问题和解决方法

今天开发的时候,发现用模板的时候,再加上iterator,会报错,如下:

std::map<T, S>::iterator find_iter = mp.find(key);

编译会报错:

error: expected `;' before "find_iter"

查了这篇文章:

https://stackoverflow.com/questions/11275444/c-template-typename-iterator

发现要在前面加typename,如下:

typename std::map<T, S>::iterator find_iter = mp.find(key);

另外,如果传进来的参数是const的,那么iterator也需要是const_iterator才行。

原文地址:https://www.cnblogs.com/twodog/p/12139792.html