STL cout_if 算法

本文内容来自C++Plus,本文只是本人的总结和翻译而已。本人只是C++的搬运工。

原文传送门:http://www.cplusplus.com/reference/algorithm/count_if/


cout_if :返回满足搜索条件的元素个数。

template 
  typename iterator_traits::difference_type
    count_if (InputIterator first, InputIterator last, UnaryPredicate pred)
{
  typename iterator_traits::difference_type ret = 0;
  while (first!=last) {
    if (pred(*first)) ++ret;
    ++first;
  }
  return ret;
}

返回值:

pred 不会返回已经处于false的区间段中的元素个数。

// count_if example
#include      // std::cout
#include     // std::count_if
#include        // std::vector

bool IsOdd (int i) { return ((i%2)==1); }

int main () {
  std::vector myvector;
  for (int i=1; i<10; i++) myvector.push_back(i); // myvector: 1 2 3 4 5 6 7 8 9

  int mycount = count_if (myvector.begin(), myvector.end(), IsOdd);
  std::cout << "myvector contains " << mycount  << " odd values.\n";

  return 0;
}


你可能感兴趣的:(STL,STL,算法)