在 C++ 中,iterator
和 const_iterator
是两种迭代器类型,用于遍历容器中的元素。它们的主要区别在于是否可以修改迭代器所指向的元素。
iterator
是一种可变迭代器类型,可以用来遍历容器中的元素,并修改迭代器所指向的元素。例如,可以使用 iterator
类型的迭代器来修改容器中的元素值,添加或删除元素,以及重排容器中的元素顺序。
const_iterator
是一种常量迭代器类型,用于遍历容器中的元素,但是不能修改迭代器所指向的元素。例如,不能使用 const_iterator
类型的迭代器来修改容器中的元素值,添加或删除元素,以及重排容器中的元素顺序。只能使用 const_iterator
类型的迭代器来读取容器中的元素值。
在 C++11 中,还引入了 const_iterator
的一种新的写法 const auto&
,用于自动推导迭代器的类型,并将其绑定到常量引用上。