用 c++ 20 写一个链表 ,指针请用 智能指针。
时间: 2023-05-11 18:03:48 浏览: 51
非常感谢您的提问。以下是使用 C++20 编写链表的示例代码,其中使用了智能指针:
```c++
#include <iostream>
#include <memory>
template <typename T>
struct Node {
T data;
std::shared_ptr<Node<T>> next;
Node(const T& data) : data(data), next(nullptr) {}
};
template <typename T>
class LinkedList {
public:
LinkedList() : head(nullptr), tail(nullptr), size(0) {}
void push_back(const T& data) {
auto node = std::make_shared<Node<T>>(data);
if (!head) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
size++;
}
void print() const {
auto node = head;
while (node) {
std::cout << node->data << " ";
node = node->next;
}
std::cout << std::endl;
}
private:
std::shared_ptr<Node<T>> head;
std::shared_ptr<Node<T>> tail;
size_t size;
};
int main() {
LinkedList<int> list;
list.push_back(1);
list.push_back(2);
list.push_back(3);
list.print();
return 0;
}
```
希望这个示例代码能够帮助您。