public member function
<forward_list>
void push_front (const value_type& val);
void push_front (value_type&& val);
Insert element at beginning
Inserts a new element at the beginning of the forward_list, right before its current first element.
In the first version, the content of this new element is initialized to a copy of val (calling its copy constructor), while in the second version (called when val is an rvalue), val itself is moved into the container (calling its move constructor) if the type supports it.
This effectively increases the container size by one.
A similar member function exists, emplace_front, which constructs the inserted element object directly in place, without performing any copy or move operation.
Parameters
- val
- Value to be copied (or moved) to the new element.
Member type value_type is the type of the elements in the container, defined in forward_list as an alias of its first template parameter (T).
Return value
none
If storage is needed for the new element, it is allocated using allocator_traits<allocator_type>::construct(), which may throw exceptions on failure (for the default allocator, bad_alloc is thrown if the allocation request does not succeed).
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
// forward_list::push_front
#include <iostream>
#include <forward_list>
using namespace std;
int main ()
{
forward_list<int> mylist = {77, 2, 16};
mylist.push_front (19);
mylist.push_front (34);
std::cout << "mylist contains:";
for (int& x: mylist) std::cout << " " << x;
std::cout << std::endl;
return 0;
}
|
Output:
mylist contains: 34 19 77 2 16
|
Iterator validity
All iterators, pointers and references remain valid after the insertion and refer to the same elements they were referring to before.