C++STLアルゴリズムシリーズ1---count関数

2562 ワード

一.count関数
Algorithmヘッダファイルはfindに似た機能を持つcountの関数を定義します.この関数は、一対の反復器と1つの値をパラメータとして使用し、この値の出現回数の統計結果を返します.
ライターはint型データの一連を読み出し、vectorオブジェクトに格納し、指定した値が何回発生したかを統計します.
コアコード:
cout< 
    

 
具体的な実装:
//     int  ,       vector   , //    algorithm         count   , //               #include #include #include using namespace std;   int main() {     int ival , searchValue;     vector ivec;       //  int       vector   ,              cout<> ival)         ivec.push_back(ival);       cin.clear(); //                //           int      cout<>searchValue;       //  count                     cout<

二.count_if関数
 
count_if:指定した条件を満たす区間の要素数を返します.
template    typename iterator_traits::difference_type count_if(       InputIterator _First,       InputIterator _Last,       Predicate _Pred    );
Parameters
_Firstは、検索される区間の最初の要素の位置を指す反復器を入力します.
_Lastは反復器を入力し、検索される区間の最後の要素の後ろを指します.
_Predユーザーがカスタマイズしたpredicate function objectは、要素がカウントされる条件を定義します.predicateは1つのパラメータしか持たずtrueまたはfalseを返す.
Return Value
述語とも呼ばれる断言(predicate)で指定した条件を満たす要素の数.
Remarks
このテンプレート関数は書道countの汎化バージョンであり,指定した値に等しい値の代わりに断言で指定した条件を用いる.
Example
#include  #include  #include   bool greater10(int value) {     return value >10; }  int main() {     using namespace std;     vector v1;     vector::iterator Iter;      v1.push_back(10);     v1.push_back(20);     v1.push_back(10);     v1.push_back(40);     v1.push_back(10);      cout << "v1 : ";     for (Iter = v1.begin(); Iter != v1.end(); Iter++)        cout << *Iter << " ";     cout << endl;       vector::size_type  result1 = count_if(v1.begin(), v1.end(), greater10);  //count_if                         cout << "The number of elements in v1 greater than 10 is: "          << result1 << "." << endl;      return 0; }

述語(predicate):いくつかの検出を行う関数で、条件判断に用いるタイプを返し、条件が成立するかどうかを指摘します.
まとめ:
count       :                  count_if   :                   

 
転載先:https://blog.51cto.com/8887511/1406046