0

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

class object;
class data;

哪个容器会更好用:

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

或者

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

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

PS“工作得更好”是指优化访问速度。

4

2 回答 2

1

您提到您正在使用 Qt 并且object实际上是QObject. Qt 具有动态属性,可用于通过setProperty成员函数将数据附加到 QObject 的特定实例。

于 2013-05-02T19:19:56.280 回答
0

我认为更好的设计是将名称-> 数据关联放入您的对象中。因此,您可以直接向对象询问其支持的操作。这会更快,因为保存了一次地图搜索。

于 2013-05-02T19:01:09.480 回答