std::list::assign_range(3)
β¨ NAME β¨
std::list::assign_range β std::list::assign_range. Thatβs the whole NAME, bestie. This is the std::list::assign_range(3) page from the C++ Standard Libary (yes, thatβs how the manual name is spelled here π
).
πΈ Synopsis πΈ
template< container-compatible-range<T> R > (since C++23)
void assign_range( R&& rg );
Ok so picture this: assign_range replaces the elements in the container with a copy of each element in rg. Thatβs the main-character move. β¨
It invalidates all iterators, pointers and references to the elements. All of them. No survivors, bestie π.
Each iterator in the range rg is dereferenced exactly once. Periodt.
β οΈ The behavior is undefined if rg overlaps with the container. Like, do not do that. π«Ά
π Parameters π
rgβ aninput_rangewith reference type convertible to the element type of the container.
π§ Type requirements π§
std::assignable_from<T&, ranges::range_reference_t<R>>must be modeled. Otherwise, the program is ill-formed.Tmust be EmplaceConstructible into the container from*ranges::begin(rg). Otherwise, the behavior is undefined.
π« Return value π«
(none) β literally nothing returned, bestie.
π Notes π
Feature-test macro check, iykyk π
- Feature-test macro:
__cpp_lib_containers_ranges - Value:
202202L - Std:
(C++23) - Feature: Ranges-aware construction and insertion
π» Example π»
Run this code, bestie:
// Run this code
#include <algorithm>
#include <cassert>
#include <list>
#include <vector>
int main()
{
const auto source = std::vector{2, 7, 1};
auto destination = std::list{3, 1, 4};
#ifdef __cpp_lib_containers_ranges
destination.assign_range(source);
#else
destination.assign(source.cbegin(), source.cend());
#endif
assert(std::ranges::equal(source, destination));
}
π See also π
insert_rangeβ inserts a range of elements;(C++23); public member function.prepend_rangeβ adds a range of elements to the beginning;(C++23); public member function.append_rangeβ adds a range of elements to the end;(C++23); public member function.assignβ assigns values to the container; public member function.
Thatβs the whole page, bestie π β source/version: http://cppreference.com, date: 2024.06.10, page: std::list::assign_range(3). bye π¦π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms