制作一个带有链表的模板类



我是链表的新手,我将制作一个电话簿程序。我需要将联系人信息存储在链接列表中:姓氏、名字、街道地址、城市、州、邮政编码和电话号码。但在我把它们存储在列表中后,我想按姓氏对每个联系人进行排序。我不确定是应该创建一个标准的链表类还是制作一个链表模板?编辑:我的作业需要使用链表。我不太理解链表。我认为手动创建它会帮助我理解。

据我所知,应该没有必要(除非出于兴趣或特殊要求)手动实现链表,因为它已经包含在标准库中,如本文所述;显然还实现了排序。

对于电话簿来说,链表通常不是一个好选择。您可能希望对列表进行排序以加快查找速度,但由于缺少随机访问迭代器,链表仍然需要O(n)。我的建议是,如果你想学习如何使用std::vector或实现类似的东西。

首选std::list。它已经存在,经过了很好的测试,并且已经提供了一种sort()方法:

auto l = std::list<Contact>{};
// fill list
l.sort([](const Contact& first, const Contact& second){
           return std::less(first.lastName, second.lastName);
       });

根据经验,大多数时候使用标准模板比尝试重新发明轮子要好。

顺便说一下:如果链表真的是满足您需求的最佳容器,请重新考虑。有时是,但通常不是。

相关内容

  • 没有找到相关文章

最新更新