void assign( size_type count, const T& value );
(1) (constexpr since C++20)template< class InputIt >
void assign( InputIt first, InputIt last );
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)
.
This overload has the same effect as overload (1) if InputIt
is an integral type.
This overload participates in overload resolution only if InputIt
satisfies the requirements of LegacyInputIterator.
If first or last is an iterator into *this, the behavior is undefined.
3) Replaces the contents with the elements from ilist.
All iterators (including the end()
iterator) and all references to the elements are invalidated.
1) Linear in count.
2) Linear in distance between first and last.
3) Linear in ilist.size().
[edit] ExampleThe following code uses assign
to add several characters to a std::vector<char>:
#include <vector> #include <iostream> #include <string> int main() { std::vector<char> characters; auto print_vector = [&]() { for (char c : characters) std::cout << c << ' '; std::cout << '\n'; }; characters.assign(5, 'a'); print_vector(); const std::string extra(6, 'b'); characters.assign(extra.begin(), extra.end()); print_vector(); characters.assign({'C', '+', '+', '1', '1'}); print_vector(); }
Output:
a a a a a b b b b b b C + + 1 1Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 2209 C++98 the replacement operation was required to be implemented asRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4