std::basic_string<CharT,Traits,Allocator>::assign_range
From cppreference.com
< cpp | string | basic string
template<container-compatible-range<CharT> R > constexprstd::basic_string& assign_range( R&& rg ); | (since C++23) | |
Replaces the contents of the string with the values in the range rg.
Equivalent to
return assign(std::basic_string(std::from_range, std::forward<R>(rg), get_allocator()));
Contents |
[edit]Parameters
rg | - | a container compatible range |
[edit]Return value
*this
[edit]Complexity
Linear in size of rg.
[edit]Exceptions
If the operation would cause size()
to exceed max_size()
, throws std::length_error.
If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).
[edit]Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_containers_ranges | 202202L | (C++23) | member functions that accept container compatible range |
[edit]Example
Run this code
#include <cassert>#include <string> int main(){constauto source ={'s', 'o', 'u', 'r', 'c', 'e'};std::string destination{"destination"}; #ifdef __cpp_lib_containers_ranges destination.assign_range(source);#else destination.assign(source.begin(), source.end());#endif assert(destination =="source");}
[edit]See also
assign characters to a string (public member function) | |
assigns values to the string (public member function) | |
constructs a basic_string (public member function) |