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才行。

 

posted @ 2017-08-01 14:30  blcblc  阅读(968)  评论(0编辑  收藏  举报