我用 C++ 编写了一个名为“Sync”的类。 然后,我创建了一个包含 Sync 对象的映射,与 syncID num 相关联,如下所示:
map<int, Sync*> _syncList;
在我的一种方法中,我试图根据给定的 syncID 号在我的 map 中搜索现有的 Sync 对象,如下所示:
Sync* currS = *(_syncList.find(sync_id))->second;
我认为这会很整洁,但随后编译器对此提出了提示:
error: cannot convert ‘Sync’ to ‘Sync*’ in initialization
我该怎么做才能正确解决这个问题?
最佳答案
两件事:
- 去掉星号:
Sync* currS = _syncList.find(sync_id)->second;
- 确保
find()
实际上找到了一个元素(否则你需要检查find()
的返回值map<...>::end
)。
关于c++ - 处理 map.find 和初始化的编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326118/