我有一个包含许多向量、集合和地图的项目。在大多数情况下,键/索引是一个整数。我正在考虑创建小类,例如:
class PhoneRepoIx //index into map {phone_number => pointer}
{
public:
int n;
};
class PersonIx //index into map {social_security_number => pointer}
{
public:
int n;
};
我会招致任何速度或内存损失吗?有了内存,我 90% 确信每个实例没有内存成本,只有每个类类型。速度我不清楚。
动机: 使用上述方法,编译器会为我做一些额外的类型检查。此外,通过精心选择的显式类型名称,我的代码的读者将更容易看到我在做什么。到目前为止,我在任何地方都使用 int 并且我选择了变量名来表达每个索引是什么。有了以上内容,我的变量名可能会更短。
注意: Tyepdefs 没有完全解决我的问题,因为编译器不会做任何额外的类型检查,内部所有类型都只是 int。