FreeBSD Manual Pages
std::basic_...e_with_range(3) C++ Standard Libarystd::basic_...e_with_range(3) NAME std::basic_string::replace_with_range - std::basic_string::re- place_with_range Synopsis template< container-compatible-range<CharT> R > constexpr std::basic_string& replace_with_range( const_iterator first, (since C++23) const_iterator last, R&& rg ); Replaces the characters in the range [first, last) with the charac- ters from the range rg. Equivalent to return replace(first, last, std::basic_string( std::from_range, std::forward<R>(rg), get_allocator()) ); Parameters first, last - range of characters that is going to be replaced 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 ef- fect (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 <algorithm> #include <cassert> #include <forward_list> #include <iterator> #include <string> int main() { using namespace std::literals; auto s{"Today is today!"s}; constexpr auto today{"today"sv}; constexpr auto tomorrow{"tomorrow's yesterday"sv}; std::forward_list<char> rg; std::ranges::reverse_copy(tomorrow, std::front_inserter(rg)); const auto pos{s.rfind(today)}; assert(pos != s.npos); const auto first{std::next(s.begin(), pos)}; const auto last{std::next(first, today.length())}; #ifdef __cpp_lib_containers_ranges s.replace_range(first, last, rg); #else s.replace(first, last, rg.cbegin(), rg.cend()); #endif assert("Today is tomorrow's yesterday!" == s); } See also replace replaces specified portion of a string (public member function) http://cppreference.com 2024.06.10 std::basic_...e_with_range(3)
NAME | Synopsis | Parameters | Return value | Complexity | Exceptions | Notes | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::u16string::replace_with_range&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
