迭代器
迭代器是一个对象,可以循环访问C++ 标准库容器中的元素,并提供对各个元素的访问
数据结构的独立性
使用迭代器时,当数据结构或容器底层代码改变时,迭代器遍历元素的代码页不需要改变。
统一接口
迭代器能够提供访问元素的统一接口,无论时访问连续元素容器(如vector
)还是不连续元素容器(list
)。
兼容性
STL包含无数基于使用迭代器操作系列元素的算法,通过抽象出访问这些元素的细节,迭代器直接用于任何支持迭代器的容器,这种兼容性加强了代码的复用性
安全性与封装性
使用迭代器可以保持容器的封装性,不暴露容器内部细节
例如下述代码,展示了迭代器在不同容器下的使用
#include <iostream>
#include <vector>
#include <list>
#include <algorithm> // For std::for_each
template<typename Container>
void printContainer(const Container& c) {
std::for_each(c.begin(), c.end(), [](const auto& elem) {
std::cout << elem << ' ';
});
std::cout << std::endl;
}
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
std::list<int> l{1, 2, 3, 4, 5};
std::cout << "Vector elements: ";
printContainer(v);
std::cout << "List elements: ";
printContainer(l);
return 0;
}