Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Illustrates how to use the deque::operator[] and deque::at Standard Template Library (STL) functions in Visual C++.
const_reference operator[](
size_type Pos
) const;
reference operator[](
size_type Pos
);
const_reference operator[](
difference_type _N
) const;
reference operator[](
difference_type _N
) const;
const_reference at(
size_type Pos
) const;
reference at(
size_type Pos
); bool empty( ) const;
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 operator[] member function returns a reference to the element of the controlled sequence at position Pos. If that position is invalid, the behavior is undefined. The at member function returns a reference to the element of the controlled sequence at position Pos. If that position is invalid, the function throws an object of class out_of_range. The empty member function returns true for an empty controlled sequence.
Example
// operator.cpp
// compile with: /EHsc
//
// Functions:
// operator[]
// at
// empty
// push_back
// begin
// end
#include <iostream>
#include <deque>
using namespace std;
typedef deque<char > CHARDEQUE;
void print_contents (CHARDEQUE deque, char*);
int main()
{
//create an empty deque a
CHARDEQUE a;
//check whether it is empty
if(a.empty())
cout<<"a is empty"<<endl;
else
cout<<"a is not empty"<<endl;
//inset A, B, C and D to a
a.push_back('A');
a.push_back('B');
a.push_back('C');
a.push_back('D');
//check again whether a is empty
if(a.empty())
cout<<"a is empty"<<endl;
else
cout<<"a is not empty"<<endl;
//print out the contents
print_contents (a,"a");
cout <<"The first element of a is " <<a[0] <<endl;
cout <<"The first element of a is " <<a.at(0) <<endl;
cout <<"The last element of a is " <<a[a.size()-1] <<endl;
cout <<"The last element of a is " <<a.at(a.size()-1) <<endl;
}
//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;
}
a is empty a is not empty The contents of a : A B C D The first element of a is A The first element of a is A The last element of a is D The last element of a is D
Requirements
Header: < deque>