正如标题所说,如何从我的地图中获取特定的对指针并将其放到矢量? 这是我的代码:
std::map<std::string, Object*> scene_objects;
std::vector<std::pair<std::string, Object*>*> scene_objects_layers;
scene_objects_layers.insert(scene_objects_layers.begin(), scene_objects.find(*object->getName())); //not working
答案 0 :(得分:0)
std::map::find
返回迭代器。可以使用一元*
运算符取消引用迭代器。这将为您提供引用到地图的value_type
。你可以取一个地址来制作指针。
因此,
&*scene_objects.find(object->getName())
将创建您需要的指针。
答案 1 :(得分:-1)
你做不到。如果您阅读map
文档,您将看到没有任何内容返回指向对的指针。并且实际上没有任何东西可以返回对具有有效生命周期的对的引用。
所以要么在你的向量中存储实际的对(是否有任何真正的理由使用指针对?),或者使用new pair...
创建对的副本。