C++ 使用链表创建模板类
我是新来的链表,我会做一个电话簿程序。我需要将联系人信息存储在一个链接列表中:姓、名、街道地址、城市、州、邮编和电话号码。但是在我把它们存储在列表中之后,我想按姓氏对每个联系人进行排序。我不确定是应该创建一个标准的链表类还是创建一个链表模板?C++ 使用链表创建模板类,c++,linked-list,C++,Linked List,我是新来的链表,我会做一个电话簿程序。我需要将联系人信息存储在一个链接列表中:姓、名、街道地址、城市、州、邮编和电话号码。但是在我把它们存储在列表中之后,我想按姓氏对每个联系人进行排序。我不确定是应该创建一个标准的链表类还是创建一个链表模板? 编辑:我的作业需要使用链表。我不太懂链表。我认为手动创建它有助于我的理解 据我所知,没有必要(除非出于兴趣或特殊要求)手动实现链表,因为它已经包含在标准库中,如文档所示;显然,也实现了排序。对于电话簿来说,链表不是一个好的选择。您可能希望对列表进行排序以加
编辑:我的作业需要使用链表。我不太懂链表。我认为手动创建它有助于我的理解 据我所知,没有必要(除非出于兴趣或特殊要求)手动实现链表,因为它已经包含在标准库中,如文档所示;显然,也实现了排序。对于电话簿来说,链表不是一个好的选择。您可能希望对列表进行排序以加快查找速度,但由于缺少随机访问迭代器,链表仍然需要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);
});
autol=std::list{};
//填写清单
l、 排序([](常数触点和第一个,常数触点和第二个){
返回std::less(first.lastName,second.lastName);
});
根据经验,大多数情况下,使用标准模板比尝试重新发明轮子要好
顺便说一句:重新考虑一下,如果链接列表真的是满足您需求的最佳容器。有时是,但通常不是