table of contents
std::basic_string::assign_range(3) | C++ Standard Libary | std::basic_string::assign_range(3) |
NAME¶
std::basic_string::assign_range - std::basic_string::assign_range
Synopsis¶
template< container-compatible-range<CharT> R >
(since C++23)
constexpr std::basic_string& assign_range( R&& rg );
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())
);
Parameters¶
rg - a container compatible range
Return value¶
*this
Complexity¶
Linear in size of rg.
Exceptions¶
If the operation would result in size() > max_size(), throws std::length_error.
If an exception is thrown for any reason, this function has no effect (strong
exception safety guarantee).
Notes¶
Feature-test macro Value Std Feature
__cpp_lib_containers_ranges 202202L (C++23) member functions that accept
container
compatible range
Example¶
// Run this code
#include <cassert>
#include <string>
int main()
{
const auto 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");
}
See also¶
assign assign characters to a string
(public member function)
operator= assigns values to the string
(public member function)
constructor constructs a basic_string
(public member function)
2024.06.10 | http://cppreference.com |