C++ 10.3.6 mapの要素を検索して読み込む
2152 ワード
概要 mapオブジェクトに対してcountメンバーの戻り値は0または1のみである.mapコンテナは、1つのキーが1つのインスタンスに対応することしか許されないので、countは、1つのキーが存在するかどうかを効果的に示すことができる.countが出現回数を返す find操作は、要素を指す反復器を返し、要素が存在しない場合はend反復器を返します.
============================================================================================の下付き操作には危険な副作用があります.このキーがmapコンテナにない場合、下付き操作はキーを持つ新しい要素を挿入します. の多くの場合、要素が存在するかどうかを知りたいだけで、挿入演算をしたくありません. mapコンテナは、キーが挿入されずにキーが存在するかどうかを確認するためのcountとfindの2つの操作を提供します.
一、mapの要素を検索して読み取る
1、countを使用してmapオブジェクトのキーが存在するかどうかをチェックする mapオブジェクトに対してcountメンバーの戻り値は0または1のみである.mapコンテナは、1つのキーが1つのインスタンスに対応することしか許されないので、countは、1つのキーが存在するかどうかを効果的に示すことができる.countは、出現回数 を返す multipleコンテナの場合、count戻り値はより多くの用途に使用されます10.5節 戻り値が0でない場合は、mapに新しい要素 が挿入される心配がなく、下付きオペレータを使用してキーに関連付けられた値を取得できます.
2、要素を読み込んで挿入しない-find関数
1-find操作は、要素を指す反復器を返し、要素が存在しない場合はend反復器を返します.指定キーを持つ要素が存在する場合は、その要素の参照を取得します.そうしないと、コンテナに新しい要素が作成されません.find を使用します.
============================================================================================
map<string,int> word_count;
int occurs = word_count["foobar"];
一、mapの要素を検索して読み取る
1、countを使用してmapオブジェクトのキーが存在するかどうかをチェックする
int occurs =0 ;
if(word_count.count("foobar"))
occurs = word_count["foobar"];
// count , 。 , find
2、要素を読み込んで挿入しない-find関数
1-find操作は、要素を指す反復器を返し、要素が存在しない場合はend反復器を返します.
int occurs=0;
map<string,int>::iterator it=word_count.find("foobar");
if(it!=word_count.end())
occurs = it->second;