STL 中统计计算相关算法总结

count

①.头文件

count 算法定义在头文件 #include 中。

②.算法作用

count 算法是使用 == 操作符统计指定范围内和指定元素值相等的元素的个数。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };  
cout <<"vec 中 5 的个数:"<< count(vec.begin(), vec.end(), 5) << endl;

count_if

①.头文件

count_if 算法定义在头文件 #include 中。

②.算法作用

count_if 算法是使用指定的比较函数,统计指定范围内满足添加的元素的个数。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };  
cout << "vec 中大于 4 的个数:" << count_if(vec.begin(), vec.end(), [&](int i) { return i > 4; }) << endl;

max_element

①.头文件

max_element 算法定义在头文件 #include 中。

②.算法作用

max_element 算法返回指定范围内最大值元素的迭代器。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };  
cout<<"vec 中最大值元素下标:"<<  max_element(vec.begin(), vec.end()) - vec.begin() << endl;

min_element

①.头文件

min_element 算法定义在头文件 #include 中。

②.算法作用

min_element 算法返回指定范围内最小值元素的迭代器。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };  
cout<<"vec 中最小值元素下标:"<<  min_element(vec.begin(), vec.end()) - vec.begin() << endl;

accumulate

①.头文件

accumulate 算法定义在头文件 #include 中。

②.算法作用

accumulate 算法计算指定范围到所有元素的和,传入第 3 个参数是计算到初始值。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };  
cout<<"vec 元素和:"<< accumulate(vec.begin(), vec.end(),0)  << endl;

partial_sum

①.头文件

partial_sum 算法定义在头文件 #include 中。

②.算法作用

partial_sum 算法是生成一个新的序列,序列中每一项都是前一项的计算结果和当前项进行计算的结果,默认是加法运算,也可以自定义谓词。

③.代码示例

vector<int> vec = { 1,2,3,4,5,6,7,8,9 };
cout << "原序列:" << endl;
for_each(vec.begin(), vec.end(), [](int i) { cout << i << ","; });

vector<int> preVec;
partial_sum(vec.begin(), vec.end(), back_inserter(preVec));

cout << endl << "前缀和:" << endl;
for_each(preVec.begin(), preVec.end(), [](int i) { cout << i <<","; });

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值