Article ID: 158621
Article Last Modified on 12/30/2005
<vector>
template<class _TYPE, class _A> void vector::reserve(size_type _N); template<class _TYPE, class _A> size_type vector::max_size() const; template<class _TYPE, class _A> void vector::resize(size_type _N, _TYPE _X = _TYPE()); template<class _TYPE, class _A> size_type vector::capacity() const; template<class _TYPE, class _A> size_type vector::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.
// Compile options needed: /GX
//////////////////////////////////////////////////////////////////////
//
// Compile options needed: /GX
//
// Remax.cpp: Illustrates vector::reserve, vector::max_size,
// vector::resize, vector::resize, and vector::capacity.
//
// Functions:
//
// vector::max_size - Returns maximum number of elements vector could
// hold.
//
// vector::capacity - Returns number of elements for which memory has
// been allocated.
//
// vector::size - Returns number of elements in the vector.
//
// vector::resize - Reallocates memory for vector, preserves its
// contents if new size is larger than existing size.
//
// vector::reserve - Allocates elements for vector to ensure a minimum
// size, preserving its contents if the new size is
// larger than existing size.
//
// vector::push_back - Appends (inserts) an element to the end of a
// vector, allocating memory for it if necessary.
//
// Written by Tom Campbell
// of Microsoft Corporation
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////
// The debugger can't handle symbols more than 255 characters long.
// STL often creates symbols longer than that.
// When symbols are longer than 255 characters, the warning is disabled.
#pragma warning(disable:4786)
// disable warning C4267: possible loss of data,
// okay to ignore
#pragma warning(disable: 4267)
#include <iostream>
#include <vector>
#if _MSC_VER > 1020 // if VC++ version is > 4.2
using namespace std; // std c++ libs implemented in std
#endif
typedef vector<int, allocator<int> > INTVECTOR;
void main()
{
// Dynamically allocated vector begins with 0 elements.
INTVECTOR theVector;
// Add one element to the end of the vector, an int with the value 42.
theVector.push_back(42) ;
// Show statistics about vector.
cout << "theVector's size is: " << theVector.size() << endl;
cout << "theVector's maximum size is: " << theVector.max_size()
<< endl;
cout << "theVector's capacity is: " << theVector.capacity() << endl;
// Ensure there's room for at least 1000 elements.
theVector.reserve(1000);
cout << endl << "After reserving storage for 1000 elements:" << endl;
cout << "theVector's size is: " << theVector.size() << endl;
cout << "theVector's maximum size is: " << theVector.max_size()
<< endl;
cout << "theVector's capacity is: " << theVector.capacity() << endl;
// Ensure there's room for at least 2000 elements.
theVector.resize(2000);
cout << endl << "After resizing storage to 2000 elements:" << endl;
cout << "theVector's size is: " << theVector.size() << endl;
cout << "theVector's maximum size is: " << theVector.max_size()
<< endl;
cout << "theVector's capacity is: " << theVector.capacity() << endl;
}
theVector's size is: 1 theVector's maximum size is: 1073741823 theVector's capacity is: 1 After reserving storage for 1000 elements: theVector's size is: 1 theVector's maximum size is: 1073741823 theVector's capacity is: 1000 After resizing storage to 2000 elements: theVector's size is: 2000 theVector's maximum size is: 1073741823 theVector's capacity is: 2000
Additional query words: STL STLSample
Keywords: kbhowto kbinfo kbtemplate kbstl kbcode KB158621