gpt4 book ai didi

c++ - 将链接列表更改为模板

转载 作者:行者123 更新时间:2023-11-28 05:13:45 27 4
gpt4 key购买 nike

我写了一个链表来存储学生的信息。我怎样才能将它更改为可以存储整数或任何其他类型的模板?我是否必须重载链表类中的方法,因为现在它们有 6 个参数?我的意思是,现在在末尾插入的方法(对于学生数据)如下所示:

void insertAtEnd(int index, string name, string surname, int yearOfStudy, string fieldOfStudy, string specialty);

如果我想存储整数,它看起来像这样:

void insertAtEnd(int Data);

因此,如果我想使用模板来添加学生,例如整数,它应该像这样吗?

template <class T>
Class llist{
void insertAtEnd(int index, string name, string surname, int yearOfStudy, string fieldOfStudy, string specialty);
void insertAtEnd <T Data>;
}

这里是学生和链表类的实现:

class student {
public:
int index;
string name;
string surname;
int yearOfStudy;
string fieldOfStudy;
string specialty;
student *next; //pointer to next item
student();
};

student::student() {
next = 0;
}

class llist {
public:
void insertAtEnd (int index, string name, string surname, int yearOfStudy, string fieldOfStudy, string specialty);
void insertAtBeginning (int index, string name, string surname, int yearOfStudy, string fieldOfStudy, string specialty);
void insertAtGivenPosition(int a, string n, int index, string name, string surname, int yearOfStudy, string fieldOfStudy, string specialty);
void findStudent(int index, string surname);
void deleteLast ();
void deleteSelected(int index, string surname);
void deleteAll ();
void displayList ();
student *first; //pointer on first elem
llist();
};

最佳答案

在你的问题的限制下,如果它在我这里,我会将你的类结构更改为:

class student {
public:
int index;
string name;
string surname;
int yearOfStudy;
string fieldOfStudy;
string specialty;
//student *next; //pointer to next item
student();
};

template <class T>
class node {
T data;
node<T> *next;
}

template <class T>
class llist {
public:
void insertAtEnd (const T &data);
.
.
.
private:
node<T> *list;
}

看看上面的伪代码,看看它如何/是否能回答您的问题。

关于c++ - 将链接列表更改为模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43073527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com