cb26a_c++_STL_算法_元素计数
cb26a_c++_STL_算法_元素计数
所有容器都可以使用
count
count_if
关联容器的等效成员函数,容器自己的成员函数速度较快
1.set.count
2.multiset.count
3.map.count
4.multimap.count
error C2275: “std::greater<int>”: 将此类型用作表达式非法
少了括号:std::greater<int>()
error C3861: “bind2nd”: 找不到标识符
需要包含:#include <functional>//greater包含在里面,预定义的函数对象
预定义的函数对象配合预定义的函数适配器一起使用
bind2nd(greater<int>(), 3),
bind2nd--预定义的函数适配器
greater<int>()--预定义的函数对象
modulus<type>() 取模运算
not1(op),一个参数,返回结果真,假
not2(op),二个参数
*/
/*cb26a_c++_STL_算法_元素计数
所有容器都可以使用
count
count_if
关联容器的等效成员函数,容器自己的成员函数速度较快
1.set.count
2.multiset.count
3.map.count
4.multimap.count error C2275: “std::greater<int>”: 将此类型用作表达式非法
少了括号:std::greater<int>()
error C3861: “bind2nd”: 找不到标识符
需要包含:#include <functional>//greater包含在里面,预定义的函数对象 预定义的函数对象配合预定义的函数适配器一起使用
bind2nd(greater<int>(), 3),
bind2nd--预定义的函数适配器
greater<int>()--预定义的函数对象 modulus<type>() 取模运算
not1(op),一个参数,返回结果真,假
not2(op),二个参数
*/
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <functional>//greater包含在里面 using namespace std; //函数返回是bool,称为谓词
bool isEven(int elem)
{
return elem % == ;
} int main()
{
vector<int> ivec;
for (int i = ; i <= ; ++i)
ivec.push_back(i);
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << endl; int num;
num = count(ivec.begin(), ivec.end(), );
cout << "有 " << num << "个8" << endl; int num2;
num2 = count_if(ivec.begin(), ivec.end(), isEven);//调用iven函数,自己写的函数
cout << "统计偶数的个数: " << num2 << endl; num2 = count_if(ivec.begin(), ivec.end(), bind2nd(modulus<int>(),));//使用modulus取模运算,奇数时返回1,
cout << "modulus方法-奇数的个数: " << num2 << endl; num2 = count_if(ivec.begin(), ivec.end(), not1(bind2nd(modulus<int>(), )));//使用modulus取模运算,not1,取反,返回偶数,
cout << "modulus方法-偶数的个数: " << num2 << endl;
//函数适配器 函数对象
//param1>param2
num = count_if(ivec.begin(), ivec.end(), bind2nd(greater<int>(), ));
//预定义的函数对象:https://blog.csdn.net/txwtech/article/details/104382505
cout << "大于3的个数:" << num << endl; cout << "multiset例子" << endl;
multiset<int>mset;
for (int i = ; i <= ; ++i)
//mset.insert(i);
mset.insert(mset.end(), i);
mset.insert();
mset.insert();
for (multiset<int>::iterator iter = mset.begin(); iter != mset.end(); ++iter)
cout << *iter << ' ';
cout << endl; num = count(mset.begin(), mset.end(), );
cout << "统计7的个数:" <<num<< endl; num = mset.count();//高效查找,二叉树,自动排序了的。
cout << "mulset自己的count成员函数:个数:" << num << endl; return ;
}
cb26a_c++_STL_算法_元素计数的更多相关文章
- STL_算法_元素计数(count、count_if)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) count . count_if #include<iostream> #include<cstdio&g ...
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort
cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p) ...
- cb37a-_c++_STL_算法_复制元素copy_copy_backward
cb37a-_c++_STL_算法_复制元素copy_copy_backward copy(),同一个容器内部区间的拷贝,或者容器与容器之间的拷贝copy_backward()//向后copy 注意: ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
- cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare
*cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare 区间:容器中的全部数据或者部分数据,都叫做区间 equal(b,e,b2), ...
- cb32a_c++_STL_算法_查找算法_(5)adjacent_find
cb32a_c++_STL_算法_查找算法_(5)adjacent_findadjacent_find(b,e),b,begin(),e,end()adjacent_find(b,e,p),p-par ...
- cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition
cb48a_c++_STL_算法_重排和分区random_shuffle_stable_partition random_shuffle()//重排,随机重排,打乱顺序 partition()分区,把 ...
随机推荐
- 解决WordPress网站被利用xmlrpc.php文件攻击问题
原因在于使用的WORDPRESS程序默认xmlrpc.php开启,而被用来DDOS攻击导致占用资源过高. 如何解决这个问题呢? 是屏蔽 XML-RPC (pingback) 的功能. add_filt ...
- web自动化之alert弹窗操作
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...
- java方式实现堆排序
一.堆排序和堆相关概念描述 堆排序是指利用堆这种数据结构所设计的一种排序算法.堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子结点的值总是小于(或者大于)它的父节点,若子结点的值总是小于它的父节 ...
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping 异常详细信息: System.InvalidOperationException: WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的
WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping.请添加一个名为 jquery (区分大小写)的 ScriptRes ...
- Black Hat Python之#1:制作简单的nc工具
nc即netcat,是网络界的瑞士军刀.当入侵了一个服务器之后,发现nc工具已经被系统管理员移除之后,可以自己制作一个简单的客户端和服务器端来实现①上传文件②执行命令③开启一个新的命令行shell等几 ...
- JS实现PC端URL跳转到对应移动端URL
在做移动端网站时,有时因技术问题或其他原因无法制作响应式版面,而移动端页面只能放到子目录下,但是手机端通过搜索引擎进入网站电脑端子页面,无法匹配到移动端页面,使得用户体验很不好,即影响排名也影响转化. ...
- 50个SQL语句(MySQL版) 问题八
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
1 安装教程 官网安装教程:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/apt_repo.html -------- ...
- Rocket - util - AsyncQueue
https://mp.weixin.qq.com/s/6McbqOKM4fu4J5vdpZvxKw 简单介绍异步队列(AsyncQueue)的实现. 0. 异步队列 异步队列的两端分 ...
- ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式
目录 回顾 数据 显示 因为这个小练习有EF的一些东西,我们来回顾一下. 一.回顾 回顾一点EF的知识怎么生成数据库模型. 1.首先我们在Models文件夹右键添加新建项,在数据分栏下有ADO.NET ...