初学者们在使用标准库的时候,会非常熟练的使用
std::vector作为容器进行处理
对容器内部处理,常常会用以下方式
for(int i = 0; i< a.size() ; i++)
//do something
//a is a vector
}
然后会发现不同的类型,相同的处理逻辑,会反复的写冗余的代码
(当然如果是不懂行的按代码算kpi就当我没说)
可以利用新标准的迭代器、匿名函数和类型自动推导来改写
#include <iostream>
#include <vector>
#include <algorithm>
int main(){
std::vector<int> a = {1,2,3,4}; //大括号初始化
int sum = 0;
std::for_each(a.begin(),a.end(),[&](auto i){ sum += i; });
//注意,i的类型与a.begin()一致并通过&传入
}