Export (0) Print
Expand All
abs
Expand Minimize
1 out of 1 rated this helpful - Rate this topic

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>

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.