新定义的for循环
vector<int> v = {1,3,1,7,5}; // vector容器 int num = 0; for(auto x : v) { // 手写for循环 if (x == 1) num++; // 判断条件,然后统计 }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; // 判断条件 } );最基本的算法 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 << ","; } );