【发布时间】:2015-04-21 02:32:48
【问题描述】:
我制作了一张充满矢量的地图,如下所示:
std::map<int, std::vector<CClass*>> pointers = getMap();
现在我想遍历地图的每个插槽,以及存储在地图中的向量的每个插槽。
这是它通过地图的方式:
for (std::map<int, std::vector<CClass*>>::iterator it = pointers.begin(); it != pointers.end(); it++)
这很好用,它可以像我想要的那样遍历每个对象。
但现在我想遍历向量中的每个插槽,我尝试这样:
for (std::vector<CClass*>::iterator playerIt = it->second.begin(); playerIt != it->second.end(); playerIt++)
如果我想访问存储在其中的值,编译器会给我这个错误:
file.cpp(552) : error C2839: Ungültiger Rückgabetyp 'CClass **' für überladenen Operator '->'
这意味着“对于超重运算符'->'的无效返回类型'CClass **'
问候
【问题讨论】:
-
提供的代码编译得很好。错误在其他地方。见ideone.com/Ma2Fda
-
与您的问题无关,但“Überladenen Operator”的正确翻译是“重载运算符”(至少在 C++ 上下文中)。
-
@JamesKanze 一想到“超重”操作员,我就有点笑了。就像它是用粗体字写的一样:D
标签: c++ for-loop dictionary vector iterator