C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > STL使用auto关键词遍历容器

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

作者:深巷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;
}

总结

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

您可能感兴趣的文章:
阅读全文