我想在地图中插入一个指向对象的指针。这是正确的方法吗?

object myobject[10];
....
mymap.insert( std::pair<int,object*>(pktctr, &myobject[pktctr]));

最佳答案

这是正确的方法吗?


是的,尽管使用make_pair可能会更好:

mymap.insert(std::make_pair(pktctr, &myobject[pktctr]));


或C ++ 11语法:

mymap.insert({pktctr, &myobject[pktctr]});


唯一的危险是必须在销毁myobject之前确保删除了指针或销毁了映射(或者至少要确保在此之后永远不要使用指针)。否则,您将有一个悬而未决的指针和大量等待发生的错误。

10-07 20:59