c++数据结构类模板
时间: 2024-03-10 16:41:28 浏览: 47
C++中的数据结构类模板是一种通用的数据结构定义方式,可以根据不同的数据类型来创建具体的数据结构对象。通过使用类模板,可以实现对不同类型数据的操作和管理。
在C++中,可以使用类模板来定义各种数据结构,如链表、栈、队列、二叉树等。类模板的定义使用关键字template,后面跟着模板参数列表,其中可以包含类型参数和非类型参数。类型参数用于指定数据类型,非类型参数用于指定一些常量值。
下面是一个简单的示例,展示了如何使用类模板定义一个链表:
```cpp
template <typename T>
class LinkedList {
private:
struct Node {
T data;
Node* next;
};
Node* head;
public:
LinkedList() : head(nullptr) {}
void insert(const T& value) {
Node* newNode = new Node;
newNode->data = value;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 其他操作方法...
};
```
在上面的示例中,`LinkedList` 是一个类模板,使用了类型参数 `T` 来表示链表中存储的数据类型。通过在类模板中定义一个内部结构体 `Node` 来表示链表节点,然后使用 `head` 指针来指向链表的头节点。
类模板中的成员函数可以像普通类一样进行定义和实现,可以根据具体的数据类型进行相应的操作。在上面的示例中,`insert` 函数用于向链表中插入新的节点。
使用类模板时,需要在创建对象时指定具体的数据类型,例如:
```cpp
LinkedList<int> intList; // 创建一个存储整数的链表对象
intList.insert(10);
intList.insert(20);
```
这样就可以创建一个存储整数的链表对象,并向其中插入两个节点。