每日学习笔记005:(C++)迭代器
每日学习笔记005:(C++)迭代器
一、迭代器简介
在C++中,迭代器(Iterator)是一种设计模式,它提供了一种统一的方式来访问容器(如向量、链表、数组等)中的元素。迭代器就像是一个指针,它可以指向容器中的一个元素,并且可以通过迭代器来遍历容器中的元素。
迭代器的主要优点在于它提供了一种通用的访问容器元素的方法,使得代码更加模块化和可复用。不同类型的容器(如std::vector、std::list等)都可以使用迭代器来访问元素,尽管这些容器内部的数据结构可能完全不同。
迭代器操作灵活支持++,–。
二、使用迭代器的示例(以std::vector为例)
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <list>
#include <string>
using namespace std;
int main() {
// 创建一个vector容器并初始化
std::vector<int> vec = {1, 2, 3, 4, 5};
// 创建一个迭代器,指向vector的开始位置
std::vector<int>::iterator it = vec.begin();
std::vector<int>::reverse_iterator itr= vec.rbegin();
// 使用迭代器遍历vector并输出元素
while (it!= vec.end()) {
std::cout << *it << " ";
++it;
}
std::cout << std::endl;
while (itr != vec.rend()) // rend()指向第一个元素的前一个位置
{
std::cout << *itr << std::endl;
itr++; // 指向下一个元素
}
std::map<string, string> map1 { //std::map容器会根据键的字典顺序自动排序。在初始化std::map时,键值对是按照键的字母顺序插入的。
{"hello", "你好"},
{"world", "世界"},
{"luke", "skywalker"}};
auto itm = map1.begin();
while (itm != map1.end())
{
std::cout << itm->first << " : " << itm->second << std::endl;
itm++;
}
return 0;
}