table of contents
std::list::assign(3) | C++ Standard Libary | std::list::assign(3) |
NAME¶
std::list::assign - std::list::assign
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.
1) Replaces the contents with count copies of value value.
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.
This overload has the same effect as overload (1) if InputIt is an
(until C++11)
integral type.
This overload participates in overload resolution only if InputIt (since
C++11)
satisfies LegacyInputIterator.
3) Replaces the contents with the elements from the initializer list
ilist.
All iterators, pointers and references to the elements of the container are
invalidated.
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¶
1) Linear in count.
2) Linear in distance between first and last.
3) 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.
DR Applied to Behavior as published Correct behavior
the replacement operation was defined as
LWG 320 C++98 erasing all removed the definition
existing elements followed by inserting
the given elements
See also¶
constructor constructs the list
(public member function)
2024.06.10 | http://cppreference.com |