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



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

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:错误:在"it"之前预期";" std::map::iterator it = m_map.find(begin(;

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

无需对迭代器的类型进行硬编码,只需使用auto关键字:

auto it = m_map.find(begin);

这样,it的类型将从其初始值设定项中推断出来(在本例中为m_map.find(begin)(。

最新更新