映射<someKey、map<otherKey、标识符> >的替代方法

Alternative to map<someKey , map<anotherKey,Identifier > >

本文关键字:lt gt 方法 map someKey 映射 otherKey 标识符      更新时间:2023-10-16

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

class object;
class data;

哪个容器更合适:

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

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

或者,我应该用别的东西吗?请注意,大多数对象只有一个方法,只有极少数对象有多个方法。

注:我所说的"更好地工作"是指优化访问速度。

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

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