map <somekey,=“”map <anotherkey,identifier =“”>&gt; </somekey>的替代方案

时间:2013-05-02 18:29:26

标签: c++ map containers

我想为每对(指向对象的指针,该对象中的方法名称)分配一些数据,以便稍后有效地检索该数据,知道指向对象的指针和方法的名称。

class object;
class data;

哪个容器可以更好地运作:

std::map<object*,std::map<std::string, data> > container;

std::map<std::pair<object*,std::string>,data > container;

或者,我应该使用其他东西吗?请注意,大多数对象只有一种方法,很少有对象有多种方法。

P.S。通过“更好地工作”,我的意思是优化访问速度。

2 个答案:

答案 0 :(得分:1)

您提到您使用的是Qt,object实际上是QObject。 Qt有dynamic properties,可以使用setProperty成员函数将数据附加到QObject的特定实例。

答案 1 :(得分:0)

我认为更好的设计是将name-&gt;数据分析放入您的对象中。因此,您可以直接向对象询问其支持的操作。这会更快,因为保存了一个地图搜索。