教你花式实现循环代码的优化方法代替传统for循环

tech2022-10-03  59

1、auto代替传统for循环

新定义的for循环

vector<int> v = {1,3,1,7,5}; // vector容器 int num = 0; for(auto x : v) { // 手写for循环 if (x == 1) num++; // 判断条件,然后统计 }

2、函数代替传统for循环

count()函数

vector<int> v = {1,3,1,7,5}; // vector容器 auto num = std::count( // count算法计算元素的数量 begin(v), end(v), 1 // begin()、end()获取容器的范围 );

count_if()函数

auto n = std::count_if( // count_if算法计算元素的数量 begin(v), end(v), // begin()、end()获取容器的范围 [](auto x) { // 定义一个lambda表达式 return x == 1; // 判断条件 } );

3、for_each代替传统for循环

最基本的算法 for_each,它是手写 for 循环的真正替代品

分功能写

vector<int> v = {3,5,1,7,10}; // vector容器 auto print = [](const auto& x) // 定义一个lambda表达式 { cout << x << ","; }; for_each(cbegin(v), cend(v), print);// for_each算法

直接写

for_each( // for_each算法,内部定义lambda表达式 cbegin(v), cend(v), // 获取常量迭代器 [](const auto& x) // 匿名lambda表达式 { cout << x << ","; } );
最新回复(0)