std::list::assign(3)
π std::list::assign π
okay bestie, welcome to the std::list::assign(3) page from the C++ Standard Libary β manual name folded in right here at the top so we can get straight into the group chat π
β¨
π NAME π
std::list::assign β std::list::assign. That's it, that's the name, no cap. It's literally the assign member of std::list π«Ά
β¨ Synopsis β¨
void assign( size_type count, const T& value ); (1)
template< class InputIt > (2)
void assign( InputIt first, InputIt last );
void assign( std::initializer_list<T> ilist ); (3) (since C++11)
Replaces the contents of the container. Periodt. The way that this just wholesale swaps out what's inside is giving main character energy π
(1)β replaces the contents withcountcopies of the valuevalue.(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 if
InputItsatisfiesLegacyInputIterator.
- until C++11: this overload has the same effect as overload
(3)β replaces the contents with the elements from the initializer listilist.
β οΈ All iterators, pointers and references to the elements of the container are invalidated. Like, do not hold onto them, bestie π
πΈ 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 π¦
- Linear in
count. - Linear in distance between
firstandlast. - Linear in
ilist.size().
π Example π
The following code uses assign to add several characters to a std::list<char>:
// Run this code
#include <list>
#include <iostream>
#include <string>
int main()
{
std::list<char> characters;
auto print_list = [&]()
{
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};
characters.assign(5, 'a');
print_list();
const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_list();
characters.assign({'C', '+', '+', '1', '1'});
print_list();
}
Output:
a a a a a
b b b b b b
C + + 1 1
π©Ή Defect reports π©Ή
The following behavior-changing defect reports were applied retroactively to previously published C++ standards:
LWG 320, applied to C++98: behavior as published was that the replacement operation was defined as erasing all existing elements followed by inserting the given elements; correct behavior is removed the definition.
π See also π
- constructor β constructs the list (public member function).
okay that's the whole page, bestie π«Ά β source: http://cppreference.com, version/date: 2024.06.10, and the manual name is std::list::assign(3). slay π
π¦ 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