名前空間
変種
操作

std::multimap::erase

提供: cppreference.com
< cpp‎ | container‎ | multimap
 
 
 
 
(1)
void erase( iterator pos );
(C++11以前)
iterator erase( const_iterator pos );
(C++11およびそれ以降)
iterator erase( iterator pos );
(C++17およびそれ以降)
(2)
void erase( iterator first, iterator last );
(C++11以前)
iterator erase( const_iterator first, const_iterator last );
(C++11およびそれ以降)
size_type erase( const key_type& key );
(3)

コンテナから指定された要素を削除します。

1) pos の指す要素を削除します。
2) 範囲 [first; last) 内の要素を削除します。 *this 内の有効な範囲でなければなりません。
3) key と同等なキーを持つすべての要素を削除します。

削除された要素への参照およびイテレータは無効化されます。 それ以外の参照およびイテレータは影響を受けません。

イテレータ pos は有効かつ逆参照可能でなければなりません。 そのため end() イテレータは (有効であるが逆参照可能でないため) pos の値として使用することはできません。


目次

[編集] 引数

pos - 削除する要素を指すイテレータ
first, last - 削除する要素の範囲
key - 削除する要素のキーの値

[編集] 戻り値

1-2) 削除された最後の要素の次のイテレータ。
3) 削除された要素の数。

[編集] 例外

1,2) (なし)
3) Compare オブジェクトによって投げられるあらゆる例外

[編集] 計算量

cmultimap のインスタンスとした場合、

1) 償却定数時間
2) log(c.size()) + std::distance(first, last)
3) log(c.size()) + c.count(k)

[編集]

#include <map>
#include <iostream>
int main()
{
    std::multimap<int, std::string> c = {{1, "one"}, {2, "two"}, {3, "three"},
                                    {4, "four"}, {5, "five"}, {6, "six"}};
    // erase all odd numbers from c
    for(auto it = c.begin(); it != c.end(); )
        if(it->first % 2 == 1)
            it = c.erase(it);
        else
            ++it;
    for(auto& p : c)
        std::cout << p.second << ' ';
}

出力:

two four six

[編集] 関連項目

すべての要素を削除します
(パブリックメンバ関数) [edit]