std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>:: erase
From cppreference.net
|
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)
削除された要素数(0または1)。
5)
削除された要素の数。
例外
1-3)
例外を送出しない。
4,5)
Compare
オブジェクトによってスローされるあらゆる例外。
計算量
Depends on underlying containers. Typically linear.|
このセクションは不完全です
理由:改訂が必要 |
例
このコードを実行
#include <flat_map> #include <iostream> int main() { std::flat_map<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
関連項目
|
内容をクリアする
(公開メンバ関数) |