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. The content of val is copied (or moved) to the inserted element.
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 inserted 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 << '\n';
return 0;
}
| |
Output:
mylist contains: 34 19 77 2 16
|
Iterator validity
No changes.
Data races
The container is modified.
No existing contained elements are accessed: concurrently accessing or modifying them is safe.
Exception safety
Strong guarantee: if an exception is thrown, there are no changes in the container.
If allocator_traits::construct is not supported with val as argument, it causes undefined behavior.