STL 中的迭代器 iterator 如何使用?
时间: 2024-12-22 18:28:23 浏览: 5
STL(Standard Template Library)中的迭代器是一种通用的概念,它是用于遍历容器(如数组、vector、list、set等)的一种工具。迭代器提供了一种统一的方式来访问容器中的元素,无论底层数据结构如何变化。
迭代器通常有两个基本操作:
1. 解引用操作(*iter):获取迭代器所指向的元素的值。
2. 自增或自减操作(++iter 或 --iter):移动迭代器到下一个或前一个元素的位置。
使用迭代器的基本步骤包括:
1. 初始化:创建迭代器,通常是通过容器的begin()和end()函数开始和结束范围。
```cpp
std::vector<int> vec = {1, 2, 3};
std::vector<int>::iterator iter;
iter = vec.begin(); // 初始位置
```
2. 遍历:使用解引用和自增操作访问每个元素。
```cpp
while (iter != vec.end()) {
int val = *iter; // 获取当前元素
std::cout << *iter << " ";
++iter; // 移动到下一个元素
}
```
3. 迭代终止:当迭代器到达容器的end()时,循环通常会停止。
4. 插入和删除:也可以通过迭代器进行元素的插入和删除操作。
```cpp
vec.insert(iter, 4); // 在当前位置插入元素4
iter = vec.erase(iter); // 删除当前元素并更新迭代器位置
```
迭代器的设计使得代码对容器的具体实现细节相对独立,提高了代码的灵活性和可移植性。
阅读全文