STL使用auto关键词遍历容器详解

 更新时间:2025年09月17日 09:34:59   作者:深巷wls  
auto自动推断类型,简化遍历容器迭代器与范围循环,如遍历vector时,auto iter = vec.begin();或范围for循环auto& elem : vec,同样适用于map迭代器与元素遍历,提升代码简洁性与可读性

STL使用auto关键词遍历容器

简单来说,auto就是可以自己识别自己需要的类型并转变为它

举一下例子:

遍历vector

vector<int> line={1,2,3,4,5,6,7,8,9};
//定义一个vector

迭代器遍历

void showvec(const vector<int>& line) {
  for (vector<int>::const_iterator iter = line.cbegin();iter != line.cend(); iter++) {
    cout << (*iter) << endl;
  }
}

使用auto遍历

//第一种用法
void showvec(const vector<int>& line) {
  for (auto iter = line.cbegin(); iter != line.cend(); iter++) {
    cout << (*iter) << endl;
  }
}

//第二种用法
for (auto lin : line) {
    cout << lin;
  }

遍历map

#include <iostream>
#include <map>
#include <queue>
 
using namespace std;
 
int main()
{
    map<int, string> mp;
    mp.insert(pair<int,string>(2,"hello"));
    mp.insert(pair<int,string>(1,"miaomiaomiao"));
    mp.insert(pair<int,string>(3,"world"));
    
    for(auto &p : mp)
	    cout << p.first << endl; 
    return 0;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++智能指针读书笔记

    C++智能指针读书笔记

    本篇随笔仅作为个人学习《C++ Primer》智能指针一节后的部分小结,抄书严重,伴随个人理解。主要介绍shared_ptr、make_shared、weak_ptr的用法和联系
    2015-11-11
  • C++利用inotify+epoll实现异步文件监控的方法

    C++利用inotify+epoll实现异步文件监控的方法

    这篇文章讲给大家详细介绍一下C++利用inotify+epoll实现异步文件监控的方法,inotify是一种异步文件监控机制,文章通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • 内核线程优先级设置的方法介绍

    内核线程优先级设置的方法介绍

    本篇文章介绍了,内核线程优先级设置的方法。需要的朋友参考下
    2013-05-05
  • C语言、C++内存对齐问题详解

    C语言、C++内存对齐问题详解

    这篇文章主要介绍了C语言、C++内存对齐问题详解,内存对齐的问题主要存在于理解struct和union等复合结构在内存中的分布,需要的朋友可以参考下
    2014-10-10
  • c++11封装thread库的方法示例

    c++11封装thread库的方法示例

    C++11 ,封装了thread的多线程的类,这样对多线程的使用更加方便。下面这篇文章主要给大家介绍了关于c++11封装thread库的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2019-01-01
  • C语言实现简单学生管理系统

    C语言实现简单学生管理系统

    这篇文章主要为大家详细介绍了C语言实现简单学生管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++归并法+快速排序实现链表排序的方法

    C++归并法+快速排序实现链表排序的方法

    这篇文章主要介绍了C++归并法+快速排序实现链表排序的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • linux环境下C++实现俄罗斯方块

    linux环境下C++实现俄罗斯方块

    这篇文章主要为大家详细介绍了linux环境下C++实现俄罗斯方块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 基于QT的TCP通信服务的实现

    基于QT的TCP通信服务的实现

    在项目开发过程中,很多地方都会用到TCP通信,本文主要介绍了基于QT的TCP通信服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • c++ const引用与非const引用介绍

    c++ const引用与非const引用介绍

    const引用是指向const对象的引用,可以读取ref,但不能修改所以也就有将const变量赋值给非const引用是非法的,感兴趣的朋友可以了解下,或许本文对你有所帮助
    2013-01-01

最新评论