(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
constexprvoid assign( size_type count,const T& value); | (1) | (since C++26) |
template<class InputIt> constexprvoid assign( InputIt first, InputIt last); | (2) | (since C++26) |
constexprvoid assign(std::initializer_list<T> ilist); | (3) | (since C++26) |
Replaces the contents of the container.
[first, last).InputIt satisfies the requirements ofLegacyInputIterator.| This section is incomplete |
Contents |
| count | - | the new size of the container |
| value | - | the value to initialize elements of the container with |
| first, last | - | the pair of iterators defining the sourcerange of elements to copy |
| ilist | - | std::initializer_list to copy the values from |
The following code usesassign to add several characters to astd::inplace_vector<char,5>:
#include <inplace_vector>#include <iterator>#include <new>#include <print> int main(){std::inplace_vector<char,5> chars; chars.assign(4,'a');// overload (1)std::println("{}", chars); constchar extra[3]{'a','b','c'}; chars.assign(std::cbegin(extra),std::cend(extra));// overload (2)std::println("{}", chars); chars.assign({'C','+','+','2','6'});// overload (3)std::println("{}", chars); try{ chars.assign(8,'x');// throws: count > chars.capacity()}catch(conststd::bad_alloc&){std::println("std::bad_alloc #1");} try{constchar bad[8]{'?'};// ranges::distance(bad) > chars.capacity() chars.assign(std::cbegin(bad),std::cend(bad));// throws}catch(conststd::bad_alloc&){std::println("std::bad_alloc #2");} try{constauto l={'1','2','3','4','5','6'}; chars.assign(l);// throws: l.size() > chars.capacity()}catch(conststd::bad_alloc&){std::println("std::bad_alloc #3");}}
Output:
['a', 'a', 'a', 'a']['a', 'b', 'c']['C', '+', '+', '2', '6']std::bad_alloc #1std::bad_alloc #2std::bad_alloc #3
| assigns a range of values to the container (public member function)[edit] | |
| assigns values to the container (public member function)[edit] |