目錄
1. 核心概念
2. 基本語法
3. 特點
4. 特有成員函數與工具
5. 內存與性能
6. 示例代碼
7. 成員函數與類型
8. 使用場景
9. 注意事項
1. 核心概念
迭代器(Iterator) 是 C++ 中用于訪問和遍歷容器元素的通用接口,類似于指針,但支持更豐富的操作。
-
抽象訪問機制:通過迭代器,算法(如
sort
、find
)可以獨立于具體容器(如vector
、list
)實現,遵循 STL 的設計理念。 -
迭代器類別:
-
輸入迭代器(Input Iterator):只讀,單向遍歷(如
istream_iterator
)。 -
輸出迭代器(Output Iterator):只寫,單向遍歷(如
ostream_iterator
)。 -
前向迭代器(Forward Iterator):可讀寫,單向遍歷(如
forward_list
的迭代器)。 -
雙向迭代器(Bidirectional Iterator):可雙向移動(如
list
、set
的迭代器)。 -
隨機訪問迭代器(Random Access Iterator):支持跳躍訪問(如
vector
、deque
的迭代器)。
-
2. 基本語法
#include <iterator>// 聲明迭代器(以 vector 為例)
std::vector<int> vec = {1, 2, 3};
std::vector<int>::iterator it = vec.begin(); // 正向迭代器
std::vector<int>::reverse_iterator rit = vec.rbegin(); // 反向迭代器// 使用迭代器遍歷
for (; it != vec.end(); ++it) {std::cout << *it << " "; // 輸出: 1 2 3
}// 使用反向迭代器逆序遍歷
for (; rit != vec.rend(); ++rit) {std::cout << *rit << " "; // 輸出: 3 2 1
}// 使用迭代器遍歷容器
for (ContainerType::iterator it = container.begin(); it != container.end(); ++it) {// 訪問元素 *it
}