基于指针的二进制堆

时间:2014-03-27 20:20:14

标签: c++ design-patterns iterator heap generic-programming

我将实现一个基于指针的二进制堆。我想要的是,堆积工作"工作"以各种方式取决于一些参数。例如,堆可以用多种方式表示:指向左子,右子和父,左子/右兄弟样式等的指针。独立于表示,我希望基本实现保持不变。例如,我不想实现两个不同的 Siftdown 方法,具体取决于表示。我在考虑将节点类型和迭代器类型作为参数提供给堆。然后, Siftdown ,比方说,可以使用给定的迭代器来完成它的工作。我想知道在实际实现代码中使用迭代器是否有好的风格?此外,我正在研究可能对我有用的已知设计模式 Bridge 策略模式似乎很有趣。

所以,我的问题有两个:

  1. 在实现代码中使用迭代器是一种好习惯吗?
  2. 有关适合我目的的设计模式的任何想法吗?
  3. 感谢。

0 个答案:

没有答案