zoukankan      html  css  js  c++  java
  • 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
    请按任意键继续. . .

  • 相关阅读:
    G 面经 && Leetcode: Longest Repeating Character Replacement
    Leetcode: Reconstruct Original Digits from English
    Leetcode: Maximum XOR of Two Numbers in an Array
    Leetcode: Battleships in a Board
    Leetcode: Find All Anagrams in a String
    Leetcode: Pacific Atlantic Water Flow
    Leetcode: Partition Equal Subset Sum
    Leetcode: Third Maximum Number
    Leetcode: Arithmetic Slices
    Leetcode: Trapping Rain Water II
  • 原文地址:https://www.cnblogs.com/herd/p/10999996.html
Copyright © 2011-2022 走看看