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>