deque::assign and deque::swap
abs
TOC
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

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

NoteNote

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.

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

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 

Header: <deque>

Show:
© 2016 Microsoft