deque::assign and deque::swap

Illustrates how to use the deque::assign and deque::swap Standard Template Library (STL) functions in Visual C++.

void assign( 
   const_iterator First, 
   const_iterator Last 
); 
void assign( 
   size_type n, 
   const T& x = T( ) 
); 
void swap( 
   deque& Dq 
);

Remarks

Note

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

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.

Example

// deque.cpp
// compile with: /EHsc
//
// Functions:
//
//    assign
//    swap
//    begin
//    end

#include <iostream>
#include <deque>

using namespace std;


typedef deque<char >  CHARDEQUE;
void print_contents (CHARDEQUE  deque, char*);

int 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");

    //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<<endl;
}

Output

The contents of a : A A A 
The contents of b : B B B B 
The contents of a : B B B B 
The contents of b : A A A 
The contents of a : A A A 
The contents of b : B B B B 
The contents of a : B B B B 
The contents of a : B B 
The contents of a : Z Z Z 

Requirements

Header: <deque>

See Also

Concepts

Standard Template Library Samples