unordered_mapで[C ++ STL] STL

ケケは、C ++を学ぶ良いが学校で大きな問題になりましたされていません。できませんどのような
ことにいくつかの簡単な操作を追加し、その後良いunordered_map

定義

それは呼ばれています:無秩序マッピング。
C ++ STLのunordered_mapはO(1)時間の要素を実現するために、ハッシュテーブルルックアップを使用して実装するが、頭上の空間に対応して増加します。
いくつかは私のC ++カブスはまた、バランスをオフにスローされ、拡張されていない、私はそれを見ていない赤黒木を備えて...、その特性を比較し、情報をマップ
STLに対応する地図データ構造は、赤、黒の木であります、時間が赤黒木の複雑さを見ると赤黒木にデータ整然とO(logN個)を、unordered_mapクエリ速度に対して低下したが、余分なスペースのオーバヘッドが低減されます。

共通機能

声明

#include <unordered_map>
using namespace std;
// <.., ..> 中指明两个变量类型,key-value
unordered_map<string, int> map; 

コンテナのサイズ

cout << map.empty() << endl;
cout << map.size() << endl;

キーと値のペアを挿入

map['A'] = 1; 
// or
map.insert(make_pair('A', 1));

キーの値があるかどうかを決定します

検索()関数と終了()関数:私達は私達がちょうど述べたマップは、あなたがunordered_mapを使用することができる場合メンバ関数「B」をテストしたいとします。
検索()とend()戻り値のデータ型は、イテレータであることに注意してください。
unordered_mapで、見つけた場合は()私は鍵を見つけ、そしてリターンはイテレータ値として)(終了しました。

// 'B' is not a key
if(map.find('B') == map.end()) {
    // your code
}
// or
if(map.count('B') == 0) {
    // your code
}

要素を削除します

スコープと削除キー値に応じて削除要素の3つのタイプがあります。

//删除元素
second.erase ( second.begin() );      // erasing by iterator
second.erase ('a');             // erasing by key
second.erase ( second.find('c'), second.end() ); // erasing by range

他の

map.clear(); // 清空

おすすめ

転載: www.cnblogs.com/recoverableTi/p/12641366.html