トップ-> C++入門:7章 STL-> map

←前ページへ :  トップへ :  次ページへ→

13. map

  mapはすでに説明したように、表や辞書を作るのに適したコンテナです。キーと呼ばれる データと、それから検索される値というデータの2つを格納します。

  例えば、英和辞書ならば、キーは英単語、値は日本語訳になります。

  これまでのコンテナのように、直接データを入れるのではなく、mapクラスでは、 pair構造体のメンバー変数として、キーと値を代入し、それをmapコンテナに追加するという 方法になります。

パフォーマンス
作業内容 処理速度
要素の追加 対数時間
要素の削除 対数時間
要素の追加(追加場所をイタレーターで指定) 定数時間
要素の削除(イタレーターで指定) 定数時間

mapクラスの主要な関数
関数名 書 式 説 明
empty bool empty() const queueの要素が0なら「true」を、カラでなければ「false」を返します
size size_type size() 要素数を返します
count size_type count(const key_type& key) const keyに一致するキーの数(0または1)を返します。
insert pair<iterator, bool> insert( const value_type &x ) xを追加します。戻り値として、結果が帰ります。
insert iterator insert( iteratorit, const value_type& x ) itの直後にxを追加し、イタレーターを返します。
insert void insert(const value_type* first, const value_type* last) firstからlastまでの要素を追加します。
find iterator find(const key_type& key) keyを検索し、その値を指すイタレーターを返します。keyが見つからない場合は最後を示すイタレーターを返します。
clear void clear() すべての要素を削除します。
erase void erase(iterator it ) itが指す要素を削除します。
erase void erase(iterator start, iterator last ) startからlastまでの要素を削除します。
erase size_type erase(const key_type key ) keyを削除します。削除した項目数(0または1)を返します。
begin iterator begin() マップの最初の要素を指すイタレーターを返します
end iterator end() マップの末尾を指すイタレーターを返します
rbegin iterator begin() マップの末尾を指す逆方向イタレーターを返します
rend iterator end() マップの先頭を指す逆方向イタレーターを返します
operator[] reference operator[](const key_type& key) keyを検索し、その値を指す値の参照を返します。
upper_bound iterator upper_bound(const key_type& key) keyより大きな要素(pair)の最初を指すイタレーターを返します。
存在しない場合は末尾を指すイタレーターを返します。
lower_bound iterator lower_bound(const key_type& key) key以上の要素(pair)の最後を指すイタレーターを返します。
存在しない場合は末尾を指すイタレーターを返します。
equal_range pair<iterator, iterator> equal_range(const key_type& key) このメンバ関数は、x.first == lower_bound(key) および x.second == upper_bound(key) とする反復子 x のペアを返します。
※value_typeはpair型を示します。
※いくつかのメンバー関数は、multimapとの互換を取るために 用意されているため、mapでは無意味なものも用意されている。

iterator upper_bound(const Key& key); コンストラクタ
書 式 説 明
map(const Pred& comp = Pred(), const A& al = A())
例) map<char, int> m1();

charからintを検索するmapを作成しm1とする
map(const map& x)
例) map<char, int> m2(m1);
コピーコンストラクタ
m1と同じmapを作成し、m2とする
map(const value_type* first, const value_type*
last, const Pred& comp = Pred(), const A& al = A()))
例) map<char, int> m3(m1.begin(), m1.end());


m1の先頭から末尾までの要素からなるmapを作成し、m3とする

  次のページでは実際に使ってみます。


←前ページへ :  トップへ :  次ページへ→