编译处理map.find和初始化的问题

时间:2011-03-16 13:37:18

标签: c++ map compiler-errors

我用c ++写了一个名为'Sync'的类。 然后,我创建了一个包含与syncID num相关联的Sync对象的地图,如下所示:

map<int, Sync*> _syncList;

在我的一个方法中,我正在尝试根据给定的syncID号在地图中搜索现有的Sync对象,如下所示:

Sync* currS = *(_syncList.find(sync_id))->second;

我认为这会很整洁,但编译器抱怨这个:

error: cannot convert ‘Sync’ to ‘Sync*’ in initialization

我能做些什么来妥善解决这个问题?

1 个答案:

答案 0 :(得分:3)

两件事:

  1. 摆脱星号:Sync* currS = _syncList.find(sync_id)->second;
  2. 请确保find()实际上找到了一个元素(否则您需要检查find()的{​​{1}}的返回值。)