C++multimapマルチマッピングコンテナ学習ノート 4104 ワード C++ サンデー Multimapマルチマッピングコンテナ Multimapはmapと基本的に同じで、唯一異なるのは、multimapが重複キー値を挿入する要素を許可し、重複キー値の存在を許可するため、multimapの要素の挿入、削除、検索はmapとは異なる.Multimapを使用するには、ヘッダファイルincludeを追加する必要があります.Multimapオブジェクト作成、要素挿入要素を繰り返し挿入できます.要素を挿入するにはinsert()メソッドを使用する必要があります.次の例では、「Jack」というキー値を繰り返し挿入します.実行結果は、Jack 300.5 Jack 306 Kity 200 Memi 500 The Code Followsです.#include <iostream> #include <map> using namespace std; int main() { // map , ; multimap <string, double> mp; // ; mp.insert(pair<string, double>("Jack", 300.5)); mp.insert(pair<string, double>("Kity", 200)); mp.insert(pair<string, double>("Memi", 500)); // "Jack"; mp.insert(pair<string, double>("Jack", 306)); // multimap; multimap <string, double>:: iterator it; for(it=mp.begin(); it != mp.end(); it++) { cout << (*it).first << " " << (*it).second << endl; } return 0; } Multimap要素の削除削除操作はerase()メソッドを採用し、ある反復器の位置の要素を削除することができ、あるキー値のすべての重複要素に等しく、1つの反復器区間の要素であり、clear()メソッドを使用してmultimapコンテナ内の要素を空にすることができる.重複するキー値があるため、削除操作で削除するキー値がmultimapから一度に削除されます.次のプログラムを参照してください:実行結果は:The elements before deleted: Jack 300.5 Jack 306 Kity 200 Memi 500 The elements after deleted : Kity 200 Memi 500 The Code Follows: #include <iostream> #include <map> using namespace std; int main() { // map , ; multimap <string, double> mp; // ; mp.insert(pair<string, double>("Jack", 300.5)); mp.insert(pair<string, double>("Kity", 200)); mp.insert(pair<string, double>("Memi", 500)); // "Jack"; mp.insert(pair<string, double>("Jack", 306)); // multimap; multimap <string, double>:: iterator it; cout << "The elements before deleted : " << endl; for(it=mp.begin(); it != mp.end(); it++) { cout << (*it).first << " " << (*it).second << endl; } // “Jack” ; mp.erase("Jack"); cout << "The elements after deleted : " << endl; for(it=mp.begin(); it != mp.end(); it++) { cout << (*it).first << " " << (*it).second << endl; } return 0; } Multimap要素の検索Multimapに重複するキー値があるため、find()メソッドは重複キー値の最初の要素の反復器位置のみを返します.このキー値が見つからない場合はend()反復器の位置を返します.次のプログラムを参照してください.実行結果は、All of the elementsです. Jack 300.5 Jack 306 Kity 200 Memi 500 The searching result : Jack 300.5 Not find it! The Code Follows: #include <iostream> #include <map> using namespace std; int main() { // map , ; multimap <string, double> mp; // ; mp.insert(pair<string, double>("Jack", 300.5)); mp.insert(pair<string, double>("Kity", 200)); mp.insert(pair<string, double>("Memi", 500)); // "Jack"; mp.insert(pair<string, double>("Jack", 306)); // multimap; multimap <string, double>:: iterator it; cout << "All of the elements : " << endl; for(it=mp.begin(); it != mp.end(); it++) { cout << (*it).first << " " << (*it).second << endl; } // ; cout << endl << "The searching result :" << endl; it = mp.find("Jack"); if(it != mp.end()) { // ; cout << (*it).first << " " << (*it).second << endl; }else { // ; cout << "Not find it!" << endl; } it = mp.find("Nacy"); if(it != mp.end()) { // ; cout << (*it).first << " " << (*it).second << endl; }else { // ; cout << "Not find it!" << endl; } return 0; } Springboot-jmxモニタリング How HashMap works in Java