在gcc编译器中初始化迭代器错误C ++

时间:2018-10-20 18:58:01

标签: c++ dictionary gcc iterator

所以我正在通过这样的映射初始化迭代器:

std::map<K, V>::iterator it = m_map.find(begin);

我正在使用GCC(7.2.0)编译器,该编译器给了我这些错误:

  

1.prog.cc:187:9:错误:在'unit_test :: std :: map :: iterator'之前需要'typename',因为'unit_test :: std :: map'是一个依赖范围            std :: map :: iterator it = m_map.find(begin);   2. prog.cc:187:34:错误:预期为';'在“它”之前            std :: map :: iterator it = m_map.find(begin);

我不认为我将其初始化为错误,但是如果有人可以提供帮助并且知道我必须更改的内容,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以简单地使用auto关键字来代替对迭代器的类型进行硬编码:

auto it = m_map.find(begin);

这样,it的类型将从其初始值设定项(在这种情况下为m_map.find(begin))推导。