#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++ 容器中元素计数的更多相关文章

  1. C++11新特性应用--介绍几个新增的便利算法(不更改容器中元素顺序的算法)

    总所周知.C++ STL中有个头文件,名为algorithm.即算法的意思. The header<algorithm>defines a collection of functions ...

  2. 遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置

    在以下四种遍历过程中,前两种会抛出ConcurrentModificationException,而后两种方法是正确的. Department类: package com.sitinspring; i ...

  3. C++(五十) — 容器中元素满足的条件

    容器中的内容必须满足三个条件: (1)无参构造函数 (2)拷贝构造函数 (3)重载 = 运算符 #define _CRT_SECURE_NO_WARNINGS #include <iostrea ...

  4. c++ 使用模板按类型统计stl多维容器中元素的数量

    struct ItemCounter{template<typename T1, typename T2, typename = typename std::enable_if<!std: ...

  5. 容器中元素的去重——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 ...

  6. c++随机排序容器中的元素

    在各种程序语言中都提供了将容器元素随机排序的shuffle方法,c++也不例外. 不过c++将shuffle放在了<algorithm>中而不是像其他语言一样在random里,同时c++1 ...

  7. vector容器中添加和删除元素

    添加元素: 方法一: insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入 ...

  8. 删除STL容器中的元素

    有关stl容器删除元素的问题,错误的代码如下: std::vector<struct> mFriendList; ... std::vector<struct>::iterat ...

  9. ca12a_c++顺序容器的操作5_访问容器中的数据元素

    ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...

随机推荐

  1. jeffy-vim-v2.9

    http://pan.baidu.com/s/1qW1DlP6

  2. Netty搭建WebSocket服务端

    Netty服务端 1.引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...

  3. VisualGC,JVMStat安装配置

    通过VisualGC工具可以通过图形化方式查看JVM垃圾收集的情况. http://www.oracle.com/technetwork/java/jvmstat-142257.html 下载 htt ...

  4. list交集

    在C#语言程序设计中,List集合是常用的集合数据类型,在涉及集合类型的运算中,有时候我们需要计算2个List集合中共有的数据,即对2个List集合求交集运算.此时可以使用C#语言提供的Interse ...

  5. C#中'??'符的使用

    ??  用于判断当前对象是否为null. 语法: 对象 ?? "当前对象为null时赋的默认值". string nullString = null; string Kong = ...

  6. 27、AOP-AOP功能测试

    27.AOP-AOP功能测试 AOP : [动态代理]指程序运行期间动态的将某段代码切入到制定方法位置进行运行的编程方式. 导入AOP模块:Spring AOP(spring-aspects) 定义一 ...

  7. keepalived+lvs+nginx高可用

    环境说明: IP地址 部署应用 192.168.10.100 VIP0 192.168.10.101 VIP1 192.168.10.17 keepalived+lvs 192.168.10.16 k ...

  8. request.getParameter乱码

    String str= new String(request.getParameter("xxxx").getBytes("ISO-8859-1")," ...

  9. 【线性代数】6-4:对称矩阵(Symmetric Matrices)

    title: [线性代数]6-4:对称矩阵(Symmetric Matrices) categories: Mathematic Linear Algebra keywords: Eigenvalue ...

  10. setjmp

    #include <setjmp.h> #include <stdio.h> jmp_buf j; void raise_exception(void) { printf(&q ...