C++单向链表迭代器在别的类中使用
时间: 2024-10-17 10:13:16 浏览: 3
C++中的单向链表迭代器是一种指向链表节点的对象,它提供了一种安全的方式遍历链表,而无需暴露底层的指针细节。当你在某个类中定义了一个链表,并想在其他类中操作这个链表时,可以将链表及其迭代器作为成员变量传递出去。
例如:
```cpp
class LinkedList {
private:
struct Node {
int data;
Node* next;
};
Node* head;
public:
class Iterator {
private:
Node* current;
public:
Iterator(Node* node) : current(node) {}
// 遍历操作
void next() { current = current->next; }
int value() const { return current->data; }
// 其他辅助函数...
};
// 构造、添加元素等方法
Iterator begin() { return Iterator(head); } // 返回第一个节点的迭代器
};
// 在另一个类中使用
class UserIteratorHelper {
private:
const LinkedList& list;
public:
explicit UserIteratorHelper(const LinkedList& l) : list(l) {}
void iterateList() {
for (const auto& iter : list) {
std::cout << iter.value() << " ";
}
}
};
```
在这个例子中,`UserIteratorHelper`类通过引用`LinkedList`的迭代器,可以在不直接访问链表内部的情况下遍历链表内容。这是封装的一种体现,提高了代码的复用性和安全性。
阅读全文