首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用链表创建模板类

使用链表创建模板类
EN

Stack Overflow用户
提问于 2015-12-01 20:51:41
回答 3查看 54关注 0票数 1

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

EN

回答 3

Stack Overflow用户

发布于 2015-12-01 20:55:37

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

票数 1
EN

Stack Overflow用户

发布于 2015-12-01 20:58:55

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

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 20:58:59

更喜欢std::list。它已经存在,经过了良好的测试,并且已经提供了一个sort()方法:

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

根据经验,大多数情况下,最好使用标准模板,而不是尝试重新发明轮子。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34020910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档