Q158574: STL Sample for the set::count Function

Article: Q158574
Product(s): Microsoft C Compiler
Version(s): 4.2,5.0,6.0
Operating System(s): 
Keyword(s): kbcode kbtemplate kbSTL kbVC420 kbVC500 kbVC600 kbDSupport
Last Modified: 27-MAR-2002

-------------------------------------------------------------------------------
The information in this article applies to:

- The Standard C++ Library, used with:
   - Microsoft Visual C++, 32-bit Enterprise Edition, versions 4.2, 5.0, 6.0 
   - Microsoft Visual C++, 32-bit Professional Edition, versions 4.2, 5.0, 6.0 
   - Microsoft Visual C++, 32-bit Learning Edition, version 6.0 
   - Microsoft Visual C++.NET (2002) 
-------------------------------------------------------------------------------

SUMMARY
=======

The following sample code illustrates how to use the set::count STL

  function in Visual C++.

MORE INFORMATION
================

Required Header
---------------

     <set>

Prototype
---------

     template<class _K, class _Pr, class _A>
     class set {
     public:
     // Function 1:

        size_type count(const _K& _Kv) const;

     }

NOTE: The class/parameter names in the prototype may not match the version in the
header file. Some have been modified to improve readability.

Description
-----------

The count function is used to determine the number of elements in the controlled
sequence that have a particular key.

Sample Code
-----------

NOTE: The first line in the sample code section says:

  // Compile options needed: /GX

In VC++ .NET, /EHsc is set by default and is equivalent to /GX.

  ////////////////////////////////////////////////////////////////////// 
  // 
  // Compile options needed: -GX
  // 
  // SetCount.cpp:
  //      Illustrates how to use the count function to determine how
  //      many elements have a particular key.
  // 
  // Functions:
  // 
  //    count        Returns the number of elements in the controlled
  //                 sequence that have a particular key.
  // 
  // Written by Derek Jamison
  // of Microsoft Technical Support,
  // Copyright (c) 1996 Microsoft Corporation. All rights reserved.
  ////////////////////////////////////////////////////////////////////// 

  #pragma warning(disable:4786)

  // disable warning C4267: possible loss of data,
  // okay to ignore

  #pragma warning(disable: 4267)

  #include <set>
  #include <iostream>

  #if _MSC_VER > 1020   // if VC++ version is > 4.2
     using namespace std;  // std c++ libs implemented in std
     #endif

  typedef set<int,less<int>,allocator<int> > SET_INT;

  void truefalse(int x)

  {
    cout << (x?"True":"False") << endl;
  }

  void main() {

    SET_INT s1;
    SET_INT::_Pairib pib;
    cout << "s1.insert(5)" << endl;
    pib=s1.insert(5);
    cout << "Inserted element: ";
    truefalse(pib.second);  // True

    cout << "s1.insert(5)" << endl;
    pib=s1.insert(5);
    cout << "Inserted element: ";
    truefalse(pib.second);  // True

    cout << "s1.insert(8)" << endl;
    s1.insert(8);

    cout << "s1.insert(12)" << endl;
    s1.insert(12);

    cout << "s1.count(5) returned ";
    cout << s1.count(5) << endl;    // 1

    cout << "s1.count(9) returned ";
    cout << s1.count(9) << endl;    // 0
  }

Program Output
--------------

  s1.insert(5)
  Inserted element: True
  s1.insert(5)
  Inserted element: False
  s1.insert(8)
  s1.insert(12)
  s1.count(5) returned 1
  s1.count(9) returned 0

REFERENCES
==========

Visual C++ Books Online: Visual C++ Books; C/C++; Standard C++ Library Reference

Additional query words: STL STLSample count string

======================================================================
Keywords          : kbcode kbtemplate kbSTL kbVC420 kbVC500 kbVC600 kbDSupport 
Technology        : kbVCsearch kbAudDeveloper kbVCLibrary
Version           : :4.2,5.0,6.0
Issue type        : kbinfo

=============================================================================