Article ID: 157065
Article Last Modified on 9/17/2003
<deque>
size_type size() const; void resize(size_type n, T x = T()); size_type max_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
//
// deque.cpp :
//
// Functions:
//
// size
// resize
// max_size
// begin
// end
//
// Written by Bobby Mattappally
// of Microsoft Product Support Services,
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////
/* Compile options needed:-GX
*/
#include <iostream>
#include <deque>
#if _MSC_VER > 1020 // if VC++ version is > 4.2
using namespace std; // std c++ libs implemented in std
#endif
typedef deque<char, allocator<char> > CHARDEQUE;
void print_contents (CHARDEQUE deque, char*);
void main()
{
//create a with A, B, C and D
CHARDEQUE a;
a.push_back('A');
a.push_back('B');
a.push_back('C');
a.push_back('D');
//print out the contents
print_contents (a,"a");
cout <<"max_size of a is " <<a.max_size() <<endl;
cout <<"size of a is " <<a.size() <<endl;
//let us increase the size to 10
// and set the new elements to be 'X'
a.resize(10,'X');
print_contents (a,"a");
cout <<"size of a is " <<a.size() <<endl;
//let us resize it to 5
a.resize(5);
print_contents (a,"a");
cout <<"size of a is " <<a.size() <<endl;
cout <<"max_size of a is still " <<a.max_size() <<endl;
}
//function to print the contents of deque
void print_contents (CHARDEQUE deque, char *name)
{
CHARDEQUE::iterator pdeque;
cout <<"The contents of "<< name <<" : ";
for(pdeque = deque.begin();
pdeque != deque.end();
pdeque++)
{
cout << *pdeque <<" " ;
}
cout<<endl;
}
Program Output is: The contents of a : A B C D max_size of a is 4294967295 size of a is 4 The contents of a : A B C D X X X X X X size of a is 10 The contents of a : A B C D X size of a is 5 max_size of a is still 4294967295NOTE: With Visual C++ 4.2, the max_size value is misleading because a sequence this long cannot be created. See the following Microsoft Knowledge Base article for further information:
160017 BUG: Access Violation Using deque class
Additional query words: STL STLSample deque size resize max_size begin end kbSTL kbTemplate
Keywords: kbinfo kbcode KB157065