This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

126
cppdraft/string/erase.md Normal file
View File

@@ -0,0 +1,126 @@
[string.erase]
# 27 Strings library [[strings]](./#strings)
## 27.4 String classes [[string.classes]](string.classes#string.erase)
### 27.4.3 Class template basic_string [[basic.string]](basic.string#string.erase)
#### 27.4.3.7 Modifiers [[string.modifiers]](string.modifiers#string.erase)
#### 27.4.3.7.5 basic_string::erase [string.erase]
[🔗](#lib:erase,basic_string)
`constexpr basic_string& erase(size_type pos = 0, size_type n = npos);
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3864)
*Effects*: Determines the effective length xlen of the string to be removed as the smaller of n andsize() - pos[.](#1.sentence-1)
Removes the characters in the range [begin() + pos, begin() + pos + xlen)[.](#1.sentence-2)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3871)
*Returns*: *this[.](#2.sentence-1)
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3875)
*Throws*: out_of_range if pos> size()[.](#3.sentence-1)
[🔗](#lib:erase,basic_string_)
`constexpr iterator erase(const_iterator p);
`
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3888)
*Preconditions*: p is a valid dereferenceable iterator on *this[.](#4.sentence-1)
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3892)
*Effects*: Removes the character referred to by p[.](#5.sentence-1)
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3896)
*Returns*: An iterator which points to the element immediately following p prior to
the element being erased[.](#6.sentence-1)
If no such element exists,end() is returned[.](#6.sentence-2)
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3904)
*Throws*: Nothing[.](#7.sentence-1)
[🔗](#lib:erase,basic_string__)
`constexpr iterator erase(const_iterator first, const_iterator last);
`
[8](#8)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3915)
*Preconditions*: first and last are valid iterators on*this[.](#8.sentence-1)
[first, last) is a valid range[.](#8.sentence-2)
[9](#9)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3920)
*Effects*: Removes the characters in the range
[first, last)[.](#9.sentence-1)
[10](#10)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3925)
*Returns*: An iterator which points to the element pointed to by last prior to
the other elements being erased[.](#10.sentence-1)
If no such element exists,end() is returned[.](#10.sentence-2)
[11](#11)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3933)
*Throws*: Nothing[.](#11.sentence-1)
[🔗](#lib:pop_back,basic_string)
`constexpr void pop_back();
`
[12](#12)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3944)
*Hardened preconditions*: empty() is false[.](#12.sentence-1)
[13](#13)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3948)
*Effects*: Equivalent to erase(end() - 1)[.](#13.sentence-1)
[14](#14)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L3952)
*Throws*: Nothing[.](#14.sentence-1)