std::forward_list assign() method
- od C++11
// (1) Non const version only
void assign( size_type count, const T& value );
// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );
// (3) Non const version only
void assign( std::initializer_list<T> ilist );
Replaces the contents of the container with the contents of another.
-
(1) Replaces the contents with
count
copies of valuevalue
. -
(2) Replaces the contents with copies of those in the range [ first, last ).
Undefined BehaviorThe behavior is undefined
if either argument is an iterator into*this
.- od C++11
- do C++11
This overload participates in overload resolution only ifInputIt
satisfies LegacyInputIterator.This overload has the same effect as overload (1) ifInputIt
is an integral type. -
(3) Replaces the contents with the elements from the initializer list
ilist
.
Invalidation
All iterators, pointers and references to the elements of the container are invalidated.
Parameters
count
- the new size of the containervalue
- the value to initialize elements of the container withfirst
,last
- the range to copy the elements fromilist
- initializer list to copy the values from
Return value
(none)
Complexity
- (1) Linear in
count
- O(count). - (2) Linear in distance between
first
andlast
- O(std::distance(first, last)). - (3) Linear in
ilist.size()
- O(ilist.size()).
Exceptions
(none)
Examples
Main.cpp
#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
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.
Hover to see the original license.