在链接列表中包含结束节点

时间:2016-05-23 01:34:09

标签: c++ optimization linked-list

我正在用C ++实现一个链表,我正在尝试决定哪个更好:包括类中的结束节点(从而增加它的大小)或不包括它(从而减少它,但也增加了添加的时间结束和诸如此类的东西)。

我的想法是,由于与现在常见的标准4-8 GB RAM相比,Node对象相对较小,因此节省时间的额外空间非常值得。

但我想知道是否有人可以告诉我,如果我错了,或者你出于某种原因决定与其中一个或另一个实例。

1 个答案:

答案 0 :(得分:0)

哪一个更好完全取决于您的用例。有些用例不包括end,只支持单一方向的迭代(我们有std::forward_list),并且有用于获取额外内存和创建双向链表的用例(为此我们有std::list)。

没有一个真正的“更好”的容器选项。这取决于您的程序需要执行哪些操作。每个容器都有自己的利基。

std::vector除外。它太棒了。