我有一个与姓氏,名字和值的单个链接的电话簿列表。 我可以按照它们创建的顺序打印出来,但不能按价值打印。我怎样才能修改这个?如果您需要查看代码中的其他内容,请告诉我,但此功能是我主要关心的问题。如何让链接列表按字母顺序打印出内容?
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说的。 使用地图并保留价值作为关键。该地图保持它的内容按键排序。 – NotAgain
@ dgrin91,好吧,所以我想我必须制作一个临时的电话簿只是为了把值,然后打印出来。 notgain,对不起,但我不知道如何使用地图,这是超出我的课目前。 –