迭代器 iterator
迭代器 iterator
迭代器遍历 Vector
vector<int> vec = {100, 200, 300};
vector<int>::iterator iter; // 定义迭代器
// 迭代器 begin() / end(),反向迭代器 rbegin() / rend()
int main()
{
vector<int> vec = {100, 200, 300};
vector<int>::iterator iter; // 定义迭代器
// 如果容器中有元素,则 begin 返回的迭代器,指向的是容器中的第一个元素 ==> 相当于 iter 执行了 vec[0]
iter = vec.begin();
// end 返回的迭代器指向的并不是末端元素,而是末端元素的后边,类似与一个标记
iter = vec.end();
// 如果一个容器为空,那么 begin() 和 end() 返回的迭代器相同
return 0;
}
正逆遍历
int main()
{
vector<int> vec = {100, 200, 300};
// 正向遍历:iterator
for(vector<int>::iterator iter = vec.begin(); iter != vec.end(); iter++){
cout << *iter << endl;
}
// 逆向遍历:reverse_iterator
for(vector<int>::reverse_iterator riter = vec.rbegin(); riter != vec.rend(); riter++){
cout << *riter << endl;
}
return 0;
}
将对象放入容器中
vector<student> stu;
student mystu;
mystu.num = 100;
stu.push_back(mystu); // 将对象放入到容器中
vector<student>::iterator iter;
iter = stu.begin(); // 指向第一个元素
cout << (*iter).num << endl;
cout << iter->num << endl;
const_iterator 迭代器
表示值不能改变的意思
- 这个迭代器指向的元素的值不能改变
- 而不是表示这个迭代器本身不能改变,也就是说,迭代器本身是可以不断指向下一个元素
- 只能从容器中读取元素,不能通过这个迭代器改写容器中的元素,感觉更像是常量指针
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix