[C++入門から放棄-04]C++STLのMultiset
5248 ワード
前回はsetについて書きましたが、setセットでは重複するキー値が現れることは許されません.では、この記事では、キー値が重複するノードが存在する場合、どのように処理するかについて説明します.
Multisetはsetと同じで、唯一の違いはmultisetが重複するキー値の挿入を許可することですが、setは許可しません.この違いです.
Multisetもヘッダファイルを宣言する必要があります.#includeは、重複するキー値要素が含まれているため、挿入、削除を行い、要素を検索する場所とsetにはいくつかの違いがあります.
[multiset要素の挿入]
[multiset要素の削除]erase()メソッドを使用すると、multisetオブジェクトの反復位置の要素、または反復区間の要素を削除できます.キー値が値のすべての反復要素に等しく、clear()メソッドを使用して要素を空にします.
[エレメントの検索]find()メソッドを使用してエレメントを検索し、見つかった場合はエレメントの反復位置を返します(エレメントに重複がある場合は、第1エレメントの反復位置を返します).見つからない場合はend()反復位置を返します.
他と同じsetの部分はここでは紹介しません!考えは同じだ!
Multisetはsetと同じで、唯一の違いはmultisetが重複するキー値の挿入を許可することですが、setは許可しません.この違いです.
Multisetもヘッダファイルを宣言する必要があります.#includeは、重複するキー値要素が含まれているため、挿入、削除を行い、要素を検索する場所とsetにはいくつかの違いがあります.
[multiset要素の挿入]
#include
#include
#include
using namespace std;
int main()
{
multiset<string> ms;
ms.insert("abc");
ms.insert("123");
ms.insert("xyz");
ms.insert("456");
ms.insert("xxx");
multiset<string>::iterator it;
for(it = ms.begin(); it != ms.end(); it ++)
cout<return 0;
}
[multiset要素の削除]erase()メソッドを使用すると、multisetオブジェクトの反復位置の要素、または反復区間の要素を削除できます.キー値が値のすべての反復要素に等しく、clear()メソッドを使用して要素を空にします.
#include
#include
#include
using namespace std;
int main()
{
multiset<string> ms;
ms.insert("abc");
ms.insert("123");
ms.insert("xyz");
ms.insert("456");
ms.insert("xxx");
multiset<string>::iterator it;
for(it = ms.begin(); it != ms.end(); it ++)
cout<// 123 , 1
int n = ms.erase("123");
cout<<"Total deleted:"<//
cout<<"all elements after deleted:"<for(it = ms.begin(); it != ms.end(); it ++)
cout<return 0;
}
[エレメントの検索]find()メソッドを使用してエレメントを検索し、見つかった場合はエレメントの反復位置を返します(エレメントに重複がある場合は、第1エレメントの反復位置を返します).見つからない場合はend()反復位置を返します.
#include
#include
#include
using namespace std;
int main()
{
multiset<string> ms;
ms.insert("abc");
ms.insert("123");
ms.insert("xyz");
ms.insert("456");
ms.insert("xxx");
multiset<string>::iterator it;
it = ms.find("123");
if(it != ms.end())
cout<else
cout<<"Not find it!"<"nbu");
if(it != ms.end())
cout<else
cout<<"Not find it!"<return 0;
}
他と同じsetの部分はここでは紹介しません!考えは同じだ!