Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用链表创建模板类_C++_Linked List - Fatal编程技术网

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);
});
根据经验,大多数情况下,使用标准模板比尝试重新发明轮子要好

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