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