我正在尝试创建一个简单的单向链接列表。我从概念上理解它,但我一直在尝试创建一个。我知道那里有指南,但通过反复试验我可以更好地理解事情。
我的简单Contact
类:
class Contact
{
std::string name, phNum;
Contact* next;
public:
void getInfo();
void printInfo();
};
此时,我要做的就是创建一个包含一些联系人的列表(即某种地址簿),然后打印出他们的信息。
根据我的理解,该列表应该包含几个 Contact
类型的唯一对象。
我的问题是,如何在堆中创建多个具有唯一地址的对象?我尝试了下面的方法,但显然不起作用,因为所有指针都是相同的。
while(true)
{
Contact* newEntry= new Contact;
newEntry->getInfo();
// rest of the linking stuff
}
最佳答案
要在循环中初始化多个联系人,您可能需要执行以下操作:
Contact *FirstOne = new Contact();
Contact *current = FirstOne;
while(...)
{
current->next = new Contact();
current = current->next;
//do stuff to current, like adding info
}
这样您就可以建立您的联系人列表。之后,*FirstOne
是列表中的第一个元素,*current
是列表中的最后一个元素。另外,您可能需要确保构造函数将 *next 设置为 NULL 以检测列表的末尾。
关于c++ - 理解/创建链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943631/