让我有以下代码
#include <map>
template <typename Value>
static void Get(std::map<int, Value> & map)
{
typename std::map<int, Value>::const_iterator it;
it _it = map.find(1);
}
void main()
{
std::map<int,std::string> _map;
_map.insert(std::pair<int,std::string>(1, "1"));
Get<std::string>(_map);
}
我收到了该行的错误
it _it = map.find(1);
为什么这样?
答案 0 :(得分:6)
如果您打算将it
定义为类型,则需要typedef
typedef typename std::map<int, Value>::const_iterator it;
如果您想将it
定义为变量:
typename std::map<int, Value>::const_iterator it;
it = map.find(1);
或者只写:
auto it = map.find(1);
此外,void main()
应为int main()
。