如何从map返回std :: pair的指针并将其放到vector< * std :: pair ...>

时间:2016-11-25 22:06:41

标签: c++

正如标题所说,如何从我的地图中获取特定的对指针并将其放到矢量? 这是我的代码:

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

2 个答案:

答案 0 :(得分:0)

std::map::find返回迭代器。可以使用一元*运算符取消引用迭代器。这将为您提供引用到地图的value_type。你可以取一个地址来制作指针

因此,

    &*scene_objects.find(object->getName())

将创建您需要的指针。

答案 1 :(得分:-1)

你做不到。如果您阅读map文档,您将看到没有任何内容返回指向对的指针。并且实际上没有任何东西可以返回对具有有效生命周期的对的引用。

所以要么在你的向量中存储实际的对(是否有任何真正的理由使用指针对?),或者使用new pair...创建对的副本。