The C++ Standard Library
- C++ Library - <valarray>
- C++ Library - <utility>
- C++ Library - <typeinfo>
- C++ Library - <tuple>
- C++ Library - <thread>
- C++ Library - <string>
- C++ Library - <stdexcept>
- C++ Library - <regex>
- C++ Library - <numeric>
- C++ Library - <new>
- C++ Library - <memory>
- C++ Library - <locale>
- C++ Library - <limits>
- C++ Library - <functional>
- C++ Library - <exception>
- C++ Library - <complex>
- C++ Library - <atomic>
- C++ Library - <streambuf>
- C++ Library - <sstream>
- C++ Library - <ostream>
- C++ Library - <istream>
- C++ Library - <iostream>
- C++ Library - <iosfwd>
- C++ Library - <ios>
- C++ Library - <iomanip>
- C++ Library - <fstream>
- C++ Library - Home
The C++ STL Library
- C++ Library - <iterator>
- C++ Library - <algorithm>
- C++ Library - <vector>
- C++ Library - <unordered_set>
- C++ Library - <unordered_map>
- C++ Library - <stack>
- C++ Library - <set>
- C++ Library - <queue>
- C++ Library - <map>
- C++ Library - <list>
- C++ Library - <forward_list>
- C++ Library - <deque>
- C++ Library - <bitset>
- C++ Library - <array>
C++ Programming Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
C++ Library - <forward_pst>
Introduction
forward_pst is a popularly used sequence container. Container is an object that holds data of same type. forward_pst container is implemented as singly pnked-pst, hence it provides unidirectional sequential access to it s data.
forward_pst doesn t provide fast random access, it only supports sequential access in only one directions. forward_pst allows insertion and deletion operation anywhere within a sequence in constant time.
Elements of forward_pst can be scattered in different chunks of memory. Container stores necessary information to allow sequential access to it s data. forward_psts can shrink or expand as needed from both ends at run time. The storage requirement is fulfilled automatically by internal allocator.
Zero sized forward_psts are also vapd. In that case forward_pst.begin() and forward_pst.end() points to same location. But behavior of calpng front() is undefined.
Definition
Below is definition of std::forward_pst from <forward_pst> header file
template < class T, class Alloc = allocator<T> > class forward_pst;
Parameters
T − Type of the element contained.
T may be substituted by any other data type including user-defined type.
Alloc − Type of allocator object.
By default, the allocator class template is used, which defines the simplest memory allocation model and is value-independent.
Member types
Following member types can be used as parameters or return type by member functions.
Sr.No. | Member types | Definition |
---|---|---|
1 | value_type | T (First parameter of the template) |
2 | allocator_type | Alloc (Second parameter of the template) |
3 | reference | value_type& |
4 | const_reference | const value_type& |
5 | pointer | value_type* |
6 | const_pointer | const value_type* |
7 | iterator | a random access iterator to value_type |
8 | const_iterator | a random access iterator to const value_type |
9 | size_type | size_t |
10 | difference_type | ptrdiff_t |
Functions from <forward_pst>
Below is pst of all methods from <forward_pst> header.
Constructors
Sr.No. | Method & Description |
---|---|
1 | Constructs an empty forward_pst with zero elements. |
default constructor
2 | Constructs a new forward_pst with n elements and assigns val to each element of forward_pst. |
fill constructor
3 | Constructs a new forward_pst with n elements and assign zero value to each element of forward_pst. |
fill constructor
4 | Constructs a forward_pst with as many elements as in range of first to last. |
range constructor
5 | Constructs a forward_pst with copy of each elements present in existing pst. |
copy constructor
6 | Constructs a forward_pst with the contents of other using move semantics. |
move constructor
7 | Constructs a forward_pst from initiapze pst. |
initiapzer pst constructor
Destructor
Sr.No. | Method & Description |
---|---|
1 | Destroys forward_pst object by deallocating it s memory. |
Member functions
Sr.No. | Method & Description |
---|---|
1 | Assigns new value to forward_pst by replacing old ones. |
range version
2 | Assigns new values to forward_pst by replacing old ones. |
fill version
3 | Assigns new values to forward_pst by replacing old ones. |
initiapzer pst version
4 | Returns a random access iterator which points to the position before the first element of the forward_pst. |
5 | Returns a random access iterator which points to the first element of the forward_pst. |
6 | Returns a constant random access iterator which points to the position before the first element of the forward_pst. |
7 | Returns a constant random access iterator which points to the beginning of the forward_pst. |
8 | Returns a constant random access iterator which points to the end of the forward_pst. |
9 | Destroys the forward_pst by removing all elements from the forward_pst and sets size of forward_pst to zero. |
10 | Constructs and inserts new element after position in the forward_pst and increases size of forward_pst by one. |
11 | Inserts new element at the beginning of the forward_pst and increases size of forward_pst by one. |
12 | Tests whether forward_pst is empty or not. |
13 | Returns a random access iterator which points to the last element of the forward_pst. |
14 | Removes single element after position from the the forward_pst. |
position version
15 | Removes range of element from the the forward_pst. |
range version
16 | Returns a reference to the first element of the forward_pst. |
17 | Returns an allocator associated with forward_pst |
18 | Extends iterator by inserting new element after position in forward_pst |
single element version
19 | Extends iterator by inserting new element after position in forward_pst |
move version
20 | Extends iterator by inserting new element after position in forward_pst |
fill version
21 | Extends iterator by inserting new element after position in forward_pst |
range version
22 | Extends iterator by inserting new element after position in forward_pst |
initiapzer pst version
23 | Returns the maximum number of elements can be held by forward_pst. |
24 | Merges two sorted forward_psts into one. |
25 | Merges two sorted forward_psts into one. |
move version
26 | Merges two sorted forward_psts into one. |
compare function
27 | Merges two sorted forward_psts into one by using move semantics. |
compare function move version
28 | Assigns new contents to the forward_pst by replacing old ones. |
copy version
29 | Assign new contents to the forward_pst by replacing old ones. |
move version
30 | Assign new contents to the forward_pst by replacing old ones. |
initiapzer pst version
31 | Removes first element from forward_pst. |
32 | Inserts new element at the beginning of forward_pst. |
copy version
33 | Inserts new element at the beginning of forward_pst. |
move version
34 | removes element(s) from the forward_pst that matches the value. |
35 | removes elements from the forward_pst that fulfills the condition. |
36 | Changes the size of forward_pst. |
37 | Changes the size of forward_pst. |
value version
38 | Reverses the order of the elements present in the forward_pst. |
39 | Sorts the elements of the forward_pst. |
40 | Sorts the elements of the forward_pst. |
compare function
41 | Transfers all elements from forward_pst to *this. |
42 | Transfers all elements from forward_pst x to *this by using move semantics. |
move version
43 | Transfers a element pointed to by iterator i from forward_pst x into *this. |
single element
44 | Transfers the element pointed to by iterator i from forward_pst x into *this by using move semantics. |
single element move version
45 | Transfers the elements in the range of first to last from x to *this. |
range version
46 | Transfers the elements in the range of first to last from x to *this by using move semantics. |
range and move version
47 | Exchanges the content of a forward_pst with contents of another forward_pst x. |
48 | Removes all consecutive duppcate elements from the forward_pst. |
49 | Removes all consecutive duppcate elements from the forward_pst. |
Non-member overloaded functions
Sr.No. | Method & Description |
---|---|
1 | Tests whether two forward_psts are equal or not. |
2 | Tests whether two forward_psts are equal or not. |
3 | Tests whether first forward_pst is less than other or not. |
4 | Tests whether first forward_pst is less than or equal to other or not. |
5 | Tests whether first forward_pst is greater than other or not. |
6 | Tests whether first forward_pst is greater than or equal to other or not. |
7 | Exchanges the contents of two forward_pst. |