【发布时间】:2013-10-01 01:37:56
【问题描述】:
我有一个包含姓氏、名字和值的单个链接电话簿列表。 我可以按它们创建的顺序打印它们,但不能按值打印。我该如何修改这个?如果您需要查看代码中的其他内容,请告诉我,但这个函数是我主要关心的问题。
ostream& operator<<(ostream& out, const PhoneBook& p) // out stream
{
if(p.head==NULL)
{
cout << "is empty";
}else
{
PhoneBookItem* item = p.head;
for(int i=0; i < p.num; i++)
{
cout << item->lastname<< " ";
cout << item->firstname<< " : ";
cout << item->phone<<endl;
item = item->next;
}
}
return out;
【问题讨论】:
-
你的意思是按字母顺序打印出来吗?因为如果你想这样做,你需要重新排序整个列表(或选择不同的数据结构)。
-
+1 对 Dgrin91 所说的话。使用 Map 并将值作为键。 Map 保持它的内容按 key 排序。
-
@dgrin91 ,好吧,所以我想我必须制作一个临时电话簿才能将值放入,然后打印出来。没有,抱歉,我不知道如何使用地图,目前这超出了我的课程范围。
标签: c++ linked-list singly-linked-list