DOCUMENT:Q156898 27-MAR-2002 [visualc] TITLE :STL Sample for deque::assign and deque::swap Functions PRODUCT :Microsoft C Compiler PROD/VER::4.2,5.0,6.0 OPER/SYS: KEYWORDS:kbcode kbVC420 kbVC500 kbVC600 kbDSupport ====================================================================== ------------------------------------------------------------------------------- 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 sample code below illustrates how to use the deque::assign, deque::swap, deque::end, and deque::begin STL functions in Visual C++. MORE INFORMATION ================ Required Header --------------- < deque> Prototype --------- void assign(const_iterator first, const_iterator last); void assign(size_type n, const T& x = T()); void swap(deque& dq); 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 first assign member function replaces the sequence controlled by *this with the sequence [first, last). The second assign member function replaces the sequence controlled by *this with a repetition of n elements of value x. The swap member function swaps the contents between *this and dq. Sample Code ----------- ////////////////////////////////////////////////////////////////////// // // Compile options needed: -GX // // deque.cpp : // // Functions: // // assign // swap // begin // end // // Written by Bobby Mattappally // of Microsoft Product Support Services, // Copyright (c) 1996 Microsoft Corporation. All rights reserved. ////////////////////////////////////////////////////////////////////// /* Compile options needed:-GX */ #include #include #if _MSC_VER > 1020 // if VC++ version is > 4.2 using namespace std; // std c++ libs implemented in std #endif typedef deque > CHARDEQUE; void print_contents (CHARDEQUE deque, char*); void main() { //create a with 3 A's CHARDEQUE a(3,'A'); //create b with 4 B's. CHARDEQUE b(4,'B'); //print out the contents print_contents (a,"a"); print_contents (b,"b"); //swap a and b a.swap(b); print_contents (a,"a"); print_contents (b,"b"); // let us swap it back a.swap(b); print_contents (a,"a"); print_contents (b,"b"); //assign the contents of b to a a.assign(b.begin(),b.end()); print_contents (a,"a"); //assign the first two items of b to a a.assign(b.begin(),b.begin()+2); print_contents (a,"a"); //assign 3 'Z's to a a.assign(3,'Z'); print_contents (a,"a"); } //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<