【发布时间】:2018-09-13 13:08:50
【问题描述】:
我有一个内存敏感项目,它使用整数将顶点的索引存储在图的密集前驱树中。 (您使用例如 Bellman Ford 生成的东西)。我知道一个事实,即我不会拥有超过 10000 个顶点的图,并且数据类型一旦创建就是不可变的。
所以在我的情况下替换是一种不好的做法
int predecessors[blah];
与
short predecessors[blah];
如果我的作品被用作图书馆。
【问题讨论】:
-
我想说你应该
typedef short vertex_id_t;能够轻松替换类型。否则,只要它提供真正的性能/内存消耗改进,我认为它没有问题。 -
寻找最佳实践来代替常识是一种不好的做法。
-
我的荣幸。如果您必须两次由不同的人撤消对您的问题的相同编辑,那么我建议您开始考虑为什么您的问题似乎会邀请该编辑...(我承认我只是在您之后才意识到上一次的编辑+撤消解开我的。)
-
如果您想将计数的宽度限制为 16 位,请使用
uint16_t(或int16_t,如果您需要 -1 作为某种标记,而 0xFFFF 不会这样做)。跨度> -
一般来说,对于“使用 X 是一种不好的做法”这个问题(其中 X 是语言的组成部分),答案是“不,这取决于"。