std::forward_list::assign(3)
β¨ NAME β¨
std::forward_list::assign β std::forward_list::assign (yes bestie, that's literally the name, from the C++ Standard Libary manual's std::forward_list::assign(3) page π
β¨).
π¦ Synopsis π¦
void assign( size_type count, const T& value ); (1) (since C++11)
template< class InputIt > (2) (since C++11)
void assign( InputIt first, InputIt last );
void assign( std::initializer_list<T> ilist ); (3) (since C++11)
Okay so this member function replaces the contents of the container β like, the whole vibe gets swapped out, no cap π .
- Overload (1): replaces the contents with count copies of the value value.
- Overload (2): replaces the contents with copies of those in the range
[first, last). The behavior is undefined if either argument is an iterator into*this.until C++11: this overload has the same effect as overload (1) ifInputItis an integral type.since C++11: this overload participates in overload resolution only ifInputItsatisfiesLegacyInputIterator.
- Overload (3): replaces the contents with the elements from the initializer list ilist.
π¨ Important vibe check: all iterators, pointers and references to the elements of the container are invalidated. Every single one, bestie β do not go using them after this π.
πΈ Parameters πΈ
countβ the new size of the container.valueβ the value to initialize elements of the container with.first,lastβ the range to copy the elements from.ilistβ initializer list to copy the values from.
π§ Complexity π§
- Overload (1): Linear in count.
- Overload (2): Linear in distance between first and last.
- Overload (3): Linear in
ilist.size().
π Example π
The following code uses assign to add several characters to a std::forward_list<char>:
// Run this code
#include <forward_list>
#include <iostream>
#include <string>
int main()
{
std::forward_list<char> characters;
auto print_forward_list = [&]()
{
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};
characters.assign(5, 'a');
print_forward_list();
const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_forward_list();
characters.assign({'C', '+', '+', '1', '1'});
print_forward_list();
}
Output:
a a a a a
b b b b b b
C + + 1 1
π See also π
constructorβ constructs theforward_list(public member function).
mwah π β signed off from http://cppreference.com, dated 2024.06.10 β¨. Stay shiny, bestie π«Ά.
π¦ 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