c++ 容器中元素计数
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include<set>
using namespace std;
//一元谓词
bool isEven(int elementParam)
{
if (elementParam%2==0)
{
return true;
}
return false;
}
int main()
{
vector<int> vec1;
for (int k=0;k<10;k++)
{
vec1.push_back(k);
}
vec1.push_back(4);
vec1.push_back(4);
for (vector<int>::iterator iter=vec1.begin();iter !=vec1.end();++iter)
{
cout << *iter << " ";
}
cout << endl;
int num = count(vec1.begin(),vec1.end(),4);
cout << "" << num << endl;
//偶数的个数
int num2 = count_if(vec1.begin(),vec1.end(),isEven);
cout << "" << num2 << endl;
//bind2nd:函数适配器
//greater:函数对象 ,有两个参数,用于判断第一个参数是否大于第二个参数
int num3 = count_if(vec1.begin(),vec1.end(),bind2nd(greater<int>(),6));
cout << "大于4的数:"<<num3<< endl;
int num4 = count_if(vec1.begin(),vec1.end(),bind2nd(modulus<int>(),2));
cout << "偶数个数:" << num4 << endl;
multiset<int> multiset1;
for (int k=0;k<10;k++)
{
multiset1.insert(multiset1.begin(),k);
}
multiset1.insert(3);
multiset1.insert(6);
multiset1.insert(6);
multiset<int>::iterator multiset_iter1;
for (multiset_iter1 = multiset1.begin();multiset_iter1 !=multiset1.end();++multiset_iter1)
{
cout << *multiset_iter1 << " ";
}
cout << endl;
int num5 = count(multiset1.begin(),multiset1.end(),3);
cout << "count:" << num5 << endl;
//效率高
int num6 = multiset1.count(6);
cout << "count:" << num6 << endl;
system("pause");
return 0;
}
===================================================
0 1 2 3 4 5 6 7 8 9 4 4
3
7
大于4的数:3
偶数个数:5
0 1 2 3 3 4 5 6 6 6 7 8 9
count:2
count:3
请按任意键继续. . .
c++ 容器中元素计数的更多相关文章
- C++11新特性应用--介绍几个新增的便利算法(不更改容器中元素顺序的算法)
总所周知.C++ STL中有个头文件,名为algorithm.即算法的意思. The header<algorithm>defines a collection of functions ...
- 遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置
在以下四种遍历过程中,前两种会抛出ConcurrentModificationException,而后两种方法是正确的. Department类: package com.sitinspring; i ...
- C++(五十) — 容器中元素满足的条件
容器中的内容必须满足三个条件: (1)无参构造函数 (2)拷贝构造函数 (3)重载 = 运算符 #define _CRT_SECURE_NO_WARNINGS #include <iostrea ...
- c++ 使用模板按类型统计stl多维容器中元素的数量
struct ItemCounter{template<typename T1, typename T2, typename = typename std::enable_if<!std: ...
- 容器中元素的去重——ans.erase(unique(ans.begin(),ans.end()),ans.end());
啊,原来unique()函数,只是处理的连续的元素,比如 -1 -1 -1 1 2 -1 2 就处理成了 -1 1 2 -1 2 -1 -1并且返回5,之后eraser(5,7)剩下了 -1 1 2 ...
- c++随机排序容器中的元素
在各种程序语言中都提供了将容器元素随机排序的shuffle方法,c++也不例外. 不过c++将shuffle放在了<algorithm>中而不是像其他语言一样在random里,同时c++1 ...
- vector容器中添加和删除元素
添加元素: 方法一: insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入 ...
- 删除STL容器中的元素
有关stl容器删除元素的问题,错误的代码如下: std::vector<struct> mFriendList; ... std::vector<struct>::iterat ...
- ca12a_c++顺序容器的操作5_访问容器中的数据元素
ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...
随机推荐
- Proxy ARP
翻译自:https://ccieblog.co.uk/arp/proxy-arp Proxy ARP在一些路由器上是默认开启的.其思想是使两个不同子网上的主机,在没有配置默认网关的情况下,实现彼此通信 ...
- Ajax长连接和SignalR(刷新客户端数据)的区别
ajax实现长连接 <%@ page language="java" import="java.util.*" pageEncoding=" ...
- AVL树(C++&Java)
目录 AVL Tree精讲专题 前言 一.AVL Tree for CPP(Coding) 1.AVL树原型 2.旋转的四种方式 二.完整版AVL Tree的CPP和JAVA实现 AVL Tree C ...
- wav音频的剪切
wav格式音频剪切功能的完美实现方案. import java.io.*; import javax.sound.sampled.*; public class AudioFileProcessor ...
- Pandas-Numpy-Scipy-Matplotlib
Ref:Using iloc, loc, & ix to select rows and columns in Pandas DataFrames 单纯的方括号只有两个用途:基于列的label ...
- python3 pyinstaller
一.安装python.pywin32.pyinstaller库 二.官网:https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html#general ...
- 解决 分布式事务中HRESULT:0x8004D025 错误
最近在开发分布式事务的过程中,碰到 该伙伴事务管理器已经禁止了它对远程/网络事务的支持. (异常来自 HRESULT:0x8004D025)的错误. 后来检查到,原来是数据库服务器的MSDTC 没有设 ...
- 部署kibana节点
部署Kibana节点 1.查看系统环境: [root@Kibana ~]# hostname Kibana [root@Kibana ~]# cat /etc/redhat-release CentO ...
- .NET Core 3全新来袭!DevExpress Winforms v19.2支持High DPI
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- web上传下载文件
WebService代码: /// /// 上传文件 /// /// 文件的byte[] /// 上传文件的路径 /// 上传文件名字 /// ...