Namespaces
Variants
Actions

std::basic_string<CharT,Traits,Allocator>::assign_range

From cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::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 macroValueStdFeature
__cpp_lib_containers_ranges202202L(C++23)member functions that accept container compatible range

[edit]Example

#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)[edit]
assigns values to the string
(public member function)[edit]
constructs a basic_string
(public member function)[edit]
close