public member function

std::forward_list::push_front

<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

Complexity

Constant.

Iterator validity

All iterators, pointers and references remain valid after the insertion and refer to the same elements they were referring to before.

See also