CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 19 Jul 2025 16:38:43 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/forward_list/forward_list/push_front/
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 19 Jul 2025 16:38:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8595-8a6YjjIySibYEDafLY+e504qj/k"
Content-Encoding: gzip
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.
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).
Output:
No existing contained elements are accessed: concurrently accessing or modifying them is safe.
If allocator_traits::construct is not supported with val as argument, it causes undefined behavior.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<forward_list>
-
forward_listC++11
forward_list
-
forward_list::~forward_listC++11
-
forward_list::forward_listC++11
member functions
-
forward_list::assignC++11
-
forward_list::before_beginC++11
-
forward_list::beginC++11
-
forward_list::cbefore_beginC++11
-
forward_list::cbeginC++11
-
forward_list::cendC++11
-
forward_list::clearC++11
-
forward_list::emplace_afterC++11
-
forward_list::emplace_frontC++11
-
forward_list::emptyC++11
-
forward_list::endC++11
-
forward_list::erase_afterC++11
-
forward_list::frontC++11
-
forward_list::get_allocatorC++11
-
forward_list::insert_afterC++11
-
forward_list::max_sizeC++11
-
forward_list::mergeC++11
-
forward_list::operator=C++11
-
forward_list::pop_frontC++11
-
forward_list::push_frontC++11
-
forward_list::removeC++11
-
forward_list::remove_ifC++11
-
forward_list::resizeC++11
-
forward_list::reverseC++11
-
forward_list::sortC++11
-
forward_list::splice_afterC++11
-
forward_list::swapC++11
-
forward_list::uniqueC++11
-
non-member overloads
- Reference
- <forward_list>
- forward_list
- push_front
public member function
<forward_list>
std::forward_list::push_front
void push_front (const value_type& val);void push_front (value_type&& val);
Insert element at beginning
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
noneIf 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
|
|
Output:
mylist contains: 34 19 77 2 16 |
Complexity
Constant.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.
See also
- forward_list::emplace_front
- Construct and insert element at beginning (public member function)
- forward_list::pop_front
- Delete first element (public member function)
- forward_list::insert_after
- Insert elements (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us