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

标签 c++ dictionary gcc iterator

<分区>

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

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

我使用的是 GCC(7.2.0) 编译器,它给我以下错误:

1.prog.cc:187:9: error: need 'typename' before 'unit_test::std::map::iterator' because 'unit_test::std::map' is a dependent scope std::map::iterator it = m_map.find(begin); 2. prog.cc:187:34: error: expected ';' before 'it' std::map::iterator it = m_map.find(begin);

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

最佳答案

您可以简单地使用 auto 关键字,而不是硬编码迭代器的类型:

auto it = m_map.find(begin);

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

关于c++ - 在gcc编译器中初始化迭代器错误C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52909092/

相关文章:

c++ - 文字和 constexpr 函数,编译时评估

C++ 在函数调用和函数完成后,游戏完全崩溃

c++ - 为什么我可以将两个不同容器的迭代器传递给排序?

python - 没有参数和类方法的映射?

Python 函数 - 循环字典并更新值

C 将数组的指针更改为更大的数组

不使用 getter 的 const 成员的 C++ 继承

c++ - 从 boost::threads 到 boost::asio 计时器

python - 获取两个字典中具有匹配值的键

c - 代码的表示(C)