INFO: STL Sample for the stack::size Function (158039)



The information in this article applies to:

  • The Standard C++ Library, when used with:
    • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
    • Microsoft Visual C++, 32-bit Professional Edition 4.2
    • Microsoft Visual C++, 32-bit Professional Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 6.0
    • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q158039

SUMMARY

The sample code below illustrates how to use the stack::size STL function in Visual C++.

MORE INFORMATION

Required Header

   <stack>
				


Prototype

   template<class _TYPE, class _C, class _A>
   size_type stack::size() 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 stack::size function returns the number of elements in the stack. It is okay to call this function with an empty stack; it will return a value of 0.

Sample Code

////////////////////////////////////////////////////////////////////// 
// 
// Compile options needed: /GX
// 
// StackSize.cpp : Illustrates how to use the size function to determine
//                 the number of elements on the stack.
// 
// Functions:
// 
//    size :  returns the number of elements in the stack.
// 
// Written by Derek Jamison
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
////////////////////////////////////////////////////////////////////// 

#pragma warning(disable:4786)

#include <stack>
#include <string>
#include <iostream>
using namespace std;

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

typedef stack<string, deque<string, allocator<string> >,

              allocator<string> > STACK_STRING;

void main()

{

   STACK_STRING stack1;

   // Check the size of an empty stack. Should return 0.
   cout << "stack1.size() equals " << stack1.size() << endl;

   // Add item "Hello" to Stack1.
   cout << "stack1.push('Hello')" << endl;
   stack1.push("Hello");

   // Add item "This is the second element" to Stack1.
   cout << "stack1.push('This is the second element')" << endl;
   stack1.push("This is the second element");

   // Check the size of Stack1. Should return 2.
   cout << "stack1.size() equals " << stack1.size() << endl << endl;

   // Add item "Third element" to Stack1.
   cout << "stack1.push('Third element')" << endl;
   stack1.push("Third element");

   // Check the size of Stack1. Should return 3.
   cout << "stack1.size() equals " << stack1.size() << endl << endl;

   // Pop "Third element".
   cout << "stack1.pop()" << endl;
   stack1.pop();

   // Pop "This is the second element".
   cout << "stack1.pop()" << endl;
   stack1.pop();

   // Check the size of Stack1 again. Should return 1.
   cout << "stack1.size() equals " << stack1.size()  << endl << endl;

   // Pop "Hello".
   cout << "stack1.pop()" << endl;
   stack1.pop();

   // Check the size of Stack1. Should return 0.
   cout << "stack1.size() equals " << stack1.size() << endl << endl;

}
				
Program Output is:
stack1.size() equals 0

stack1.push('Hello')
stack1.push('This is the second element')
stack1.size() equals 2

stack1.push('Third element')
stack1.size() equals 3

stack1.pop()
stack1.pop()
stack1.size() equals 1

stack1.pop()
stack1.size() equals 0
				

REFERENCES

Visual C++ Books On Line: Visual C++ Books:C/C++:Standard C++ Library Reference.

Modification Type:MajorLast Reviewed:12/2/2003
Keywords:kbcode kbinfo KB158039