C++笔记之遍历vector的所有方式

C++笔记之遍历vector的所有方式

------ 2023年4月15日 上海

code review

文章目录

注意:不使用引用或指针来遍历的遍历方式都是只读操作,无法修改元素的值

1.普通for循环

2.迭代器版

3.const迭代器

4.C++11引入的范围for循环

5.使用auto关键字和迭代器

6.使用std::for_each算法

7.使用std::for_each和lambda表达式

8.普通版+vector::at()版

9.指针版

10.使用while循环

注意:使用while循环遍历时需要注意循环条件,遍历完成后一定要确保循环变量或迭代器指向std::vector的end()位置,否则可能会出现未定义的行为。

10.1.使用普通while循环和下标

10.2.使用普通while循环和迭代器

11.迭代器的声明通常使用auto it = v.begin();来替代std::vector::iterator it = v.begin();

代码

cpp 复制代码
#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    std::vector<int>::iterator it1 = v.begin();
    auto it2 = v.begin();

    std::cout << "*it1= " << *it1 << std::endl;
    std::cout << "*it2= " << *it2 << std::endl;
    return 0;
}
相关推荐
lingggggaaaa21 小时前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
寒山李白21 小时前
IDEA中如何配置Java类注释(Java类注释信息配置,如作者、备注、时间等)
java
我要添砖java21 小时前
<JAVAEE> 多线程4-wait和notify方法
android·java·java-ee
lxmyzzs21 小时前
作为一名工程师,何不试试瑞芯微?
笔记·rk3588
Rysxt_21 小时前
Spring Boot SPI 教程
java·数据库·sql
海边夕阳200621 小时前
主流定时任务框架对比:Spring Task/Quartz/XXL-Job怎么选?
java·后端·spring·xxl-job·定时任务·job
q***985221 小时前
VS Code 中如何运行Java SpringBoot的项目
java·开发语言·spring boot
别动哪条鱼1 天前
MP4转AAC转换器C++
c++·ffmpeg·音视频·aac
帧栈1 天前
开发避坑指南(72):HttpHeaders 的add()方法和set()方法有什么区别?
java·spring·http
2301_807997381 天前
代码随想录-day47
数据结构·c++·算法·leetcode