FreeBSD Manual Pages
std::basic_string::erase(3) C++ Standard Libary std::basic_string::erase(3) NAME std::basic_string::erase - std::basic_string::erase Synopsis basic_string& erase( (constexpr since size_type index = 0, (1) C++20) size_type count = npos ); iterator erase( iterator (until C++11) position ); iterator erase( (since C++11) const_iterator position ); (constexpr since (2) C++20) iterator erase( iterator (until C++11) first, iterator last ); iterator erase( (3) (since C++11) const_iterator first, (constexpr since const_iterator last ); C++20) Removes specified characters from the string. 1) Removes std::min(count, size() - index) characters starting at index. 2) Removes the character at position. If position is not a dereferenceable iterator on *this, the behavior is undefined. 3) Removes the characters in the range [first, last). If first or last is not a valid iterator on *this, or [first, last) is not a valid range, the behavior is undefined. Parameters index - first character to remove count - number of characters to remove position - iterator to the character to remove first, last - range of the characters to remove Return value 1) *this 2) Iterator pointing to the character immediately following the character erased, or end() if no such character exists. 3) Iterator pointing to the character last pointed to before the erase, or end() if no such character exists. Exceptions 1) std::out_of_range if index > size(). 2,3) Throws nothing. If an exception is thrown for any reason, this function has no ef- fect (strong exception safety guarantee). Example // Run this code #include <algorithm> #include <iostream> #include <iterator> #include <string> int main() { std::string s = "This Is An Example"; std::cout << "1) " << s << '\n'; s.erase(7, 3); // erases " An" using overload (1) std::cout << "2) " << s << '\n'; s.erase(std::find(s.begin(), s.end(), ' ')); // erases first ' '; overload (2) std::cout << "3) " << s << '\n'; s.erase(s.find(' ')); // trims from ' ' to the end of the string; overload (1) std::cout << "4) " << s << '\n'; auto it = std::next(s.begin(), s.find('s')); // obtains iterator to the first 's' s.erase(it, std::next(it, 2)); // erases "sI"; overload (3) std::cout << "5) " << s << '\n'; } Output: 1) This Is An Example 2) This Is Example 3) ThisIs Example 4) ThisIs 5) This Defect reports The following behavior-changing defect reports were applied retroac- tively to previously published C++ standards. DR Applied to Behavior as published Correct behavior overload (3) did not erase the character re- turns an iterator LWG 27 C++98 last pointed to, but it returned point- ing to that the iterator pointing to the character char- acter immediately following that character overload (2) explicitly required position LWG 428 C++98 to be valid, but re- moved the SequenceContainer requires it to be ex- plicit requirement dereferenceable (stricter) LWG 847 C++98 there was no exception safety guarantee added strong exception safety guarantee See also clear clears the contents (public member function) http://cppreference.com 2024.06.10 std::basic_string::erase(3)
NAME | Synopsis | Parameters | Return value | Exceptions | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::string::erase&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
