【发布时间】:2015-07-09 21:17:35
【问题描述】:
我正在尝试遍历地图,如下所示:
data = &server->update();
for (auto const iter : *data)
{
do things
}
但一旦 for 行运行,我就会收到一条错误消息,指出“映射/设置迭代器不兼容”。
数据变量是一个
std::map<unsigned int, Packet> *data;
它是一个指针,因为它位于:
public ref class ServerForm : public System::Windows::Forms::Form
这似乎不像任何不是指针的东西。
我尝试了多种方法来遍历此地图,但每次尝试都完全失败。非常感谢您了解为什么会发生这种情况以及如何解决它,谢谢。
【问题讨论】:
-
更新函数的签名是什么?
-
还有:你能用那张地图做其他事情吗,比如查询它的大小?
-
std::map<unsigned int, Packet> Server::update()是更新函数@Daniel 的签名。我可以查询大小,但它是 0,就像在我的项目中一样,服务器启动,然后客户端加入迭代。一旦我启动服务器,项目就会崩溃并出现此错误。 -
这真的是 C++ 吗? C++ 在类声明中没有
ref关键字。
标签: c++ dictionary iterator std