std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: erase
From cppreference.net
<
cpp
|
container
|
flat multimap
|
iterator erase
(
iterator pos
)
;
|
(1) |
(C++23부터)
(C++26부터 constexpr) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(C++23부터)
(C++26부터 constexpr) |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(3) |
(C++23부터)
(C++26부터 constexpr) |
|
size_type erase
(
const
Key
&
key
)
;
|
(4) |
(C++23부터)
(C++26부터 constexpr) |
|
template
<
class
K
>
size_type erase ( K && x ) ; |
(5) |
(C++23부터)
(C++26부터 constexpr) |
지정된 요소들을 컨테이너에서 제거합니다. 남아있는 동등한 요소들의 순서는 유지됩니다.
1,2)
pos
위치의 요소를 제거합니다.
3)
[
first
,
last
)
범위에 있는 요소들을 제거합니다. 이 범위는
*
this
내에서 유효한 범위여야 합니다.
4)
키가
key
와 동등한 모든 요소를 제거합니다.
5)
값
x
와 비교하여 동등한 키를 가진 모든 요소를 제거합니다.
이 오버로드는
Compare
가
transparent
이고,
iterator
와
const_iterator
모두
K
에서 암시적으로 변환되지 않는 경우에만 오버로드 해결에 참여합니다. 이를 통해
Key
인스턴스를 생성하지 않고 이 함수를 호출할 수 있습니다.
| 반복자 무효화에 대한 정보는 여기 에서 복사되었습니다 |
반복자 pos 는 역참조 가능해야 합니다. 따라서 end() 반복자(유효하지만 역참조 불가능한)는 pos 의 값으로 사용할 수 없습니다.
목차 |
매개변수
| pos | - | 제거할 요소에 대한 반복자 |
| first, last | - | 제거할 요소들의 범위 를 정의하는 한 쌍의 반복자 |
| key | - | 제거할 요소들의 키 값 |
| x | - | 제거할 요소들을 나타내는 키와 투명하게 비교될 수 있는 임의 타입의 값 |
반환값
1-3)
제거된 마지막 요소 다음의 반복자.
4)
제거된 요소의 수.
5)
제거된 요소의 수.
예외
1-3)
아무 것도 throw하지 않습니다.
4,5)
Compare
객체에 의해 발생하는 모든 예외.
복잡도
Depends on underlying containers. Typically linear.|
이 섹션은 불완전합니다
이유: 수정 필요 |
예제
이 코드 실행
#include <flat_map> #include <iostream> int main() { std::flat_multimap<int, std::string> c = { {1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"} }; // c에서 모든 홀수를 제거 for (auto it = c.begin(); it != c.end();) { if (it->first % 2 != 0) it = c.erase(it); else ++it; } for (auto& p : c) std::cout << p.second << ' '; std::cout << '\n'; }
출력:
two four six
참고 항목
|
내용을 지움
(public member function) |