在c++中如何用数组或者链表来保存多个对象的指针?
时间: 2024-01-21 19:16:51 浏览: 38
可以使用数组或链表来保存多个对象的指针,具体方法如下:
1. 数组保存指针
在 C++ 中,可以使用数组来保存多个对象的指针。如下所示:
```c++
class MyClass {
// ...
};
MyClass* array[10]; // 声明一个指针数组,最多可以保存 10 个 MyClass 对象的指针
// 在数组中保存 MyClass 对象的指针
for (int i = 0; i < 10; ++i) {
array[i] = new MyClass();
}
// 使用数组中的 MyClass 对象的指针
for (int i = 0; i < 10; ++i) {
MyClass* obj = array[i];
// ...
}
// 释放数组中保存的 MyClass 对象的指针
for (int i = 0; i < 10; ++i) {
delete array[i];
}
```
2. 链表保存指针
在 C++ 中,可以使用链表来保存多个对象的指针。如下所示:
```c++
class MyClass {
// ...
};
class Node {
public:
MyClass* obj; // 指向 MyClass 对象的指针
Node* next; // 指向下一个节点的指针
Node(MyClass* o) : obj(o), next(nullptr) {} // 构造函数
};
// 创建链表并保存 MyClass 对象的指针
Node* head = nullptr;
for (int i = 0; i < 10; ++i) {
MyClass* obj = new MyClass();
Node* node = new Node(obj);
node->next = head;
head = node;
}
// 使用链表中的 MyClass 对象的指针
for (Node* node = head; node != nullptr; node = node->next) {
MyClass* obj = node->obj;
// ...
}
// 释放链表中保存的 MyClass 对象的指针
while (head != nullptr) {
Node* node = head;
head = head->next;
delete node->obj;
delete node;
}
```
以上是使用数组和链表保存多个对象的指针的方法,需要根据实际情况选用不同的数据结构。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)