38 lines
1.2 KiB
Markdown
38 lines
1.2 KiB
Markdown
[string.erasure]
|
|
|
|
# 27 Strings library [[strings]](./#strings)
|
|
|
|
## 27.4 String classes [[string.classes]](string.classes#string.erasure)
|
|
|
|
### 27.4.4 Non-member functions [[string.nonmembers]](string.nonmembers#string.erasure)
|
|
|
|
#### 27.4.4.5 Erasure [string.erasure]
|
|
|
|
[ð](#lib:erase,basic_string)
|
|
|
|
`template<class charT, class traits, class Allocator, class U = charT>
|
|
constexpr typename basic_string<charT, traits, Allocator>::size_type
|
|
erase(basic_string<charT, traits, Allocator>& c, const U& value);
|
|
`
|
|
|
|
[1](#1)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L5168)
|
|
|
|
*Effects*: Equivalent to:auto it = remove(c.begin(), c.end(), value);auto r = distance(it, c.end());
|
|
c.erase(it, c.end());return r;
|
|
|
|
[ð](#lib:erase_if,basic_string)
|
|
|
|
`template<class charT, class traits, class Allocator, class Predicate>
|
|
constexpr typename basic_string<charT, traits, Allocator>::size_type
|
|
erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred);
|
|
`
|
|
|
|
[2](#2)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L5187)
|
|
|
|
*Effects*: Equivalent to:auto it = remove_if(c.begin(), c.end(), pred);auto r = distance(it, c.end());
|
|
c.erase(it, c.end());return r;
|