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;
}
相关推荐
kfyty7255 分钟前
轻量级 ioc 框架 loveqq,支持接口上传 jar 格式的 starter 启动器并支持热加载其中的 bean
java·jvm·ioc·jar·热加载
早起鸟儿31 分钟前
docker-Dockerfile 配置
java·linux·运维·docker
云边小网安35 分钟前
java集合篇(六) ---- ListIterator 接口
java·开发语言·青少年编程·java集合
都叫我大帅哥41 分钟前
Spring WebFlux:响应式编程的“未来战士”还是“花架子”?
java·spring·flux
都叫我大帅哥43 分钟前
Reactor 深度解析:响应式编程的「核反应堆」是如何工作的?
java·spring
不太厉害的程序员43 分钟前
NC65配置xml找不到Bean
xml·java·后端·eclipse
我在北国不背锅1 小时前
基于Java开发的浏览器自动化Playwright-MCP服务器
java·playwright·mcp
呃m2 小时前
双重特征c++
c++
LUCIAZZZ2 小时前
钉钉机器人-自定义卡片推送快速入门
java·jvm·spring boot·机器人·钉钉·springboot
景彡先生2 小时前
C++ 中文件 IO 操作详解
开发语言·c++