C++Mapノット
Map紹介
特徴:
1.mapはKeyのobjectとTのObjectを結合しているため、value typeがpairであることを示すPair Associative Containerである.
2.Unique Associative Containerでもあり、2つの要素が同じKeyを持っていないことを示しています.
3.Sorted Associative Containerであるため、3番目のパラメータはless、greaterのようなfunctorのみであり、比較すると、
hash tableはequal_to, not_equal_toとかのfunctor.
mapでよく使われる方法は主に以下のとおりです.
insert,erease,size,count,begin,end,find,clear,empty
Insertメソッド:
mapに要素を挿入します.mapに記録される要素は通常キー値ペアです.したがって,格納時には,キーと値をpairにカプセル化して挿入する.
1つ目は、挿入された要素のキー値がmapにすでに存在すると、挿入に失敗し、要素のキー値対情報は変更されず、キー値がmapで見つからないと、その新しい要素がmapに追加されます.
第2の方法は比較的直感的であるが,性能の問題がある.2を挿入するときは、まずphoneでプライマリ・キーがnameのアイテムを検索しますが、見つかりませんでした.その後、新しいオブジェクトをphoneに挿入します.キーはnameで、値は空の文字列です.挿入が完了すると、文字列をnumberに割り当てます.この方法では、各値をデフォルト値に割り当て、表示された値に割り当てられます.要素がクラス・オブジェクトの場合、オーバーヘッドが大きくなります.キー値がnameの項目が見つかったらnumberで元のnumber値を変更します.
ereaseメソッド:
ereaseは主にmapの項目を削除し、phoneなどのパラメータkeyが必要です.erease(name);key値がnameのキー値ペアを削除することを意味します.
findメソッド:
sizeメソッド:
mapのキー値ペアの個数を統計しますphone.size()戻り値はphoneにおけるキー値ペアの個数であり、mapが空であれば0を返す
countメソッド:
mapのキー値の出現回数を統計する、mapのキー値が一意であるため、この方法は、削除時にphoneできるように、キー値が存在するか否かを検出するために使用することができる.count(name)は,0であればユーザにこのキー値が存在しないことを促すことができ,1であれば直接削除する.Ps:ereaseは、削除するキー値ペアが存在するかどうかにかかわらず正常に実行されます.
begin、endメソッド:
beginメソッドはmap反復器タイプを返し,endメソッドの戻り値と比較することでmapを容易に遍歴できる.
clearメソッド:
mapのすべての要素をクリア
Emptyメソッド:
mapが空かどうかを判断し、空であれば真を返し、空でなければ偽を返す.
Ps:mapにはキー値ペアが格納されているため、反復器がiteの場合、ite->firstはkey、ite->secondは値
特徴:
1.mapはKeyのobjectとTのObjectを結合しているため、value typeがpairであることを示すPair Associative Containerである.
2.Unique Associative Containerでもあり、2つの要素が同じKeyを持っていないことを示しています.
3.Sorted Associative Containerであるため、3番目のパラメータはless、greaterのようなfunctorのみであり、比較すると、
hash tableはequal_to, not_equal_toとかのfunctor.
mapでよく使われる方法は主に以下のとおりです.
insert,erease,size,count,begin,end,find,clear,empty
Insertメソッド:
mapに要素を挿入します.mapに記録される要素は通常キー値ペアです.したがって,格納時には,キーと値をpairにカプセル化して挿入する.
phone.insert(pair<string,string>(name,number));
// name number string 。
//
phone[name]=number;
// phone map<string,string> 。 map [] 。
1つ目は、挿入された要素のキー値がmapにすでに存在すると、挿入に失敗し、要素のキー値対情報は変更されず、キー値がmapで見つからないと、その新しい要素がmapに追加されます.
第2の方法は比較的直感的であるが,性能の問題がある.2を挿入するときは、まずphoneでプライマリ・キーがnameのアイテムを検索しますが、見つかりませんでした.その後、新しいオブジェクトをphoneに挿入します.キーはnameで、値は空の文字列です.挿入が完了すると、文字列をnumberに割り当てます.この方法では、各値をデフォルト値に割り当て、表示された値に割り当てられます.要素がクラス・オブジェクトの場合、オーバーヘッドが大きくなります.キー値がnameの項目が見つかったらnumberで元のnumber値を変更します.
map<string,string> map;
int Test::input(string name,string number)
{
//map[name]=number;
map.insert(pair<string,string>(name,number));
return 0;
}
ereaseメソッド:
ereaseは主にmapの項目を削除し、phoneなどのパラメータkeyが必要です.erease(name);key値がnameのキー値ペアを削除することを意味します.
findメソッド:
map<string,string> map;
int Test::getNum(string name)
{
std::map<std::string, std::string>::iterator it = map.find(name);
if(it == map.end()){
return -1;
}else{
return it->second;
}
}
sizeメソッド:
mapのキー値ペアの個数を統計しますphone.size()戻り値はphoneにおけるキー値ペアの個数であり、mapが空であれば0を返す
map<string,string> map;
int Test::count(){
return map.size();
}
countメソッド:
mapのキー値の出現回数を統計する、mapのキー値が一意であるため、この方法は、削除時にphoneできるように、キー値が存在するか否かを検出するために使用することができる.count(name)は,0であればユーザにこのキー値が存在しないことを促すことができ,1であれば直接削除する.Ps:ereaseは、削除するキー値ペアが存在するかどうかにかかわらず正常に実行されます.
map<string,string> map;
begin、endメソッド:
beginメソッドはmap反復器タイプを返し,endメソッドの戻り値と比較することでmapを容易に遍歴できる.
map<string,string> map;
int Test::showAll()
{
map<string,string>::iterator ite = map.begin();
while(ite!=phone.end()) {
cout<<ite->first<<"\t";
cout<<ite->second<<endl;
ite++;
}
return 0;
}
clearメソッド:
mapのすべての要素をクリア
map<string,string> map;
int Test::clear()
{
map.clear();
}
Emptyメソッド:
mapが空かどうかを判断し、空であれば真を返し、空でなければ偽を返す.
Ps:mapにはキー値ペアが格納されているため、反復器がiteの場合、ite->firstはkey、ite->secondは値