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; }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。